GenesisTools 1.0.0

dotnet add package GenesisTools --version 1.0.0
NuGet\Install-Package GenesisTools -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="GenesisTools" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add GenesisTools --version 1.0.0
#r "nuget: GenesisTools, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install GenesisTools as a Cake Addin
#addin nuget:?package=GenesisTools&version=1.0.0

// Install GenesisTools as a Cake Tool
#tool nuget:?package=GenesisTools&version=1.0.0

This package provide database tools to access MSSQL Databases using ADO.Net. For those that do not want to use EF or other ORM's

Product Compatible and additional computed target framework versions.
.NET Framework net46 is compatible.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 1,244 8/12/2017

Example of repository :
public partial class titlesRepository : ABaseRepository, ItitlesReadRepository, ItitlesWriteRepository
{
#region CTOR
public titlesRepository():base(pubsDatabaseConfig.DEFAULT_CONNECTION_NAME){}
public titlesRepository(string connectionName):base(connectionName){}
public titlesRepository(ConnectionSet connectionSet):base(connectionSet){}
#endregion

//************************************************************************

#region Genesis T4 Generated : Filltitles()

partial void FilltitlesExtension(IDataReader reader, titles item);

// Item must be already instanciated
protected void Filltitles(IDataReader reader, titles item)
{
if (item == null) throw new ArgumentException($"{nameof(Filltitles)} -> item to map is null");
item.title_id = reader.ValueAs<String>("title_id");
item.advance = reader.ValueAs<Decimal>("advance");
item.notes = reader.ValueAs<String>("notes");
item.price = reader.ValueAs<Decimal>("price");
item.pub_id = reader.ValueAs<String>("pub_id");
item.pubdate = reader.ValueAs<DateTime>("pubdate");
item.royalty = reader.ValueAs<Int32>("royalty");
item.title = reader.ValueAs<String>("title");
item.type = reader.ValueAs<String>("type");
item.ytd_sales = reader.ValueAs<Int32>("ytd_sales");
// For custom developper Treatment
FilltitlesExtension(reader, item);
}
#endregion

//************************************************************************

//************************************************************************

#region Genesis T4 Generated : Get
public titles Get(System.String title_id)
{
return GetBuilder(ConnectionMode.ReadOnly).BuildCommand<titles>(Procedures.SP_GET_ITEM)
.AddParameter("@title_id", title_id)
.SetMapper(Filltitles)
.Get();
}
// Pk Columns : 1
// Type : System.String
#endregion





//************************************************************************

//************************************************************************

#region Genesis T4 Generated :  GetList()
public List<titles> GetList()
{
return GetBuilder(ConnectionMode.ReadOnly).BuildCommand<titles>(Procedures.SP_GET_LIST)
.SetMapper(Filltitles)
.GetList();
}
#endregion

#region GetDictionary{
public Dictionary<String, titles> GetDictionary()
{
return GetList().ToDictionary(itm => itm.title_id);
}
#endregion

//************************************************************************

//************************************************************************
#region Genesis T4 Generated : GetListBypub_id
public List<titles> GetListBypub_id(System.String pub_id)
{
return GetBuilder(ConnectionMode.ReadOnly).BuildCommand<titles>(Procedures.SP_GET_LIST_BY_PUB_ID)
.AddParameter("@pub_id",@pub_id)
.SetMapper(Filltitles)
.GetList();
}
#endregion
#region Genesis T4 Generated : GetListBystor_id
public List<titles> GetListBystor_id(System.String stor_id)
{
return GetBuilder(ConnectionMode.ReadOnly).BuildCommand<titles>(Procedures.SP_GET_LIST_BY_STOR_ID)
.AddParameter("@stor_id",@stor_id)
.SetMapper(Filltitles)
.GetList();
}
#endregion
#region Genesis T4 Generated : GetListByau_id
public List<titles> GetListByau_id(System.String au_id)
{
return GetBuilder(ConnectionMode.ReadOnly).BuildCommand<titles>(Procedures.SP_GET_LIST_BY_AU_ID)
.AddParameter("@au_id",@au_id)
.SetMapper(Filltitles)
.GetList();
}
#endregion



//************************************************************************

#region CRUD

//************************************************************************

#region Fill Insert Parameters
private void FillInsertParams<T>(IParameterizableCommand<T> cmd, titles item)
{
cmd.AddParameter("@pub_id", (object) item.pub_id ?? DBNull.Value );
cmd.AddParameter("@title_id",  item.title_id  );
cmd.AddParameter("@type",  item.type  );
cmd.AddParameter("@ytd_sales", (object) item.ytd_sales ?? DBNull.Value );
cmd.AddParameter("@advance", (object) item.advance ?? DBNull.Value );
cmd.AddParameter("@notes", (object) item.notes ?? DBNull.Value );
cmd.AddParameter("@price", (object) item.price ?? DBNull.Value );
cmd.AddParameter("@pubdate",  item.pubdate  );
cmd.AddParameter("@royalty", (object) item.royalty ?? DBNull.Value );
cmd.AddParameter("@title",  item.title  );
}
#endregion

#region Genesis T4 Generated : Insert(titles item)
bool ItitlesWriteRepository.Insert(titles item)
{
var command = GetBuilder(ConnectionMode.Write).BuildCommand<titles>(Procedures.SP_INSERT);
FillInsertParams(command, item);
return command.ExecuteNonQuery() > 0;
}
#endregion

#region Genesis T4 Generated : InsertAndFill(titles item)
bool ItitlesWriteRepository.InsertAndFill(titles item)
{
var command = GetBuilder(ConnectionMode.Write).BuildCommand<titles>(Procedures.SP_INSERT);
FillInsertParams(command, item);
command.ObjectCreation((reader) => { return item; });
command.SetMapper(Filltitles);
return command.Get() != null;
}

titles ItitlesWriteRepository.InsertAndGet(titles item)
{
var command = GetBuilder(ConnectionMode.Write).BuildCommand<titles>(Procedures.SP_INSERT);
FillInsertParams(command, item);
command.SetMapper(Filltitles);
return command.Get();
}
#endregion


#region Genesis T4 Generated : InsertAndRetrievePK({table-name} item)
String ItitlesWriteRepository.InsertAndRetrievePK(titles item)
{
var command = GetBuilder(ConnectionMode.Write).BuildCommand(Procedures.SP_INSERT);
FillInsertParams(command, item);
return command.GetScalar<String>();
}
#endregion


//************************************************************************

#region Genesis T4 Generated : Update(titles item)
bool ItitlesWriteRepository.Update(titles item)
{
return GetBuilder(ConnectionMode.Write).BuildCommand<titles>(Procedures.SP_UPDATE)
.AddParameter("@pub_id", (object) item.pub_id ?? DBNull.Value )
.AddParameter("@title_id",  item.title_id  )
.AddParameter("@type",  item.type  )
.AddParameter("@ytd_sales", (object) item.ytd_sales ?? DBNull.Value )
.AddParameter("@advance", (object) item.advance ?? DBNull.Value )
.AddParameter("@notes", (object) item.notes ?? DBNull.Value )
.AddParameter("@price", (object) item.price ?? DBNull.Value )
.AddParameter("@pubdate",  item.pubdate  )
.AddParameter("@royalty", (object) item.royalty ?? DBNull.Value )
.AddParameter("@title",  item.title  )
.ExecuteNonQuery() > 0;
}
#endregion

#region Genesis T4 Generated : UpdateAndFill(titles item)
bool ItitlesWriteRepository.UpdateAndFill(titles item)
{
var insertedItem = GetBuilder(ConnectionMode.Write).BuildCommand<titles>(Procedures.SP_UPDATE)
.AddParameter("@pub_id", (object) item.pub_id ?? DBNull.Value )
.AddParameter("@title_id",  item.title_id  )
.AddParameter("@type",  item.type  )
.AddParameter("@ytd_sales", (object) item.ytd_sales ?? DBNull.Value )
.AddParameter("@advance", (object) item.advance ?? DBNull.Value )
.AddParameter("@notes", (object) item.notes ?? DBNull.Value )
.AddParameter("@price", (object) item.price ?? DBNull.Value )
.AddParameter("@pubdate",  item.pubdate  )
.AddParameter("@royalty", (object) item.royalty ?? DBNull.Value )
.AddParameter("@title",  item.title  )
.ObjectCreation((reader) => { return item; })
.SetMapper(Filltitles)
.Get();
return insertedItem != null;
}

titles ItitlesWriteRepository.UpdateAndGet(titles item)
{
return GetBuilder(ConnectionMode.Write).BuildCommand<titles>(Procedures.SP_UPDATE)
.AddParameter("@pub_id", (object) item.pub_id ?? DBNull.Value )
.AddParameter("@title_id",  item.title_id  )
.AddParameter("@type",  item.type  )
.AddParameter("@ytd_sales", (object) item.ytd_sales ?? DBNull.Value )
.AddParameter("@advance", (object) item.advance ?? DBNull.Value )
.AddParameter("@notes", (object) item.notes ?? DBNull.Value )
.AddParameter("@price", (object) item.price ?? DBNull.Value )
.AddParameter("@pubdate",  item.pubdate  )
.AddParameter("@royalty", (object) item.royalty ?? DBNull.Value )
.AddParameter("@title",  item.title  )
.SetMapper(Filltitles)
.Get();
}
#endregion


bool ItitlesWriteRepository.Delete(String title_id){
return GetBuilder(ConnectionMode.ReadOnly).BuildCommand(Procedures.SP_DELETE)
.AddParameter("@title_id", title_id)
.ExecuteNonQuery() >0;
}


#endregion // CRUD

public partial class Procedures
{
public static Dictionary<string, string> StoredProcedures = new Dictionary<string, string>();
static partial void RegisterCustomSps();
static Procedures()
{
StoredProcedures[nameof(SP_INSERT)] = SP_INSERT;
StoredProcedures[nameof(SP_UPDATE)] = SP_UPDATE;
StoredProcedures[nameof(SP_DELETE)] = SP_DELETE;
StoredProcedures[nameof(SP_GET_LIST)] = SP_GET_LIST;
StoredProcedures[nameof(SP_GET_ITEM)] = SP_GET_ITEM;
StoredProcedures[nameof(SP_GET_LIST_BY_PUB_ID)] = SP_GET_LIST_BY_PUB_ID;
StoredProcedures[nameof(SP_GET_LIST_BY_STOR_ID)] = SP_GET_LIST_BY_STOR_ID;
StoredProcedures[nameof(SP_GET_LIST_BY_AU_ID)] = SP_GET_LIST_BY_AU_ID;
RegisterCustomSps();
}
public const string SP_INSERT = "proc_titles_Insert";
public const string SP_UPDATE = "proc_titles_Update";
public const string SP_DELETE = "proc_titles_Delete";
public const string SP_GET_LIST = "proc_titles_GetList";
public const string SP_GET_ITEM = "proc_titles_Get";
public const string SP_GET_LIST_BY_PUB_ID = "proc_titles_GetListBy_pub_id";
public const string SP_GET_LIST_BY_STOR_ID = "proc_titles_GetListBy_stor_id";
public const string SP_GET_LIST_BY_AU_ID = "proc_titles_GetListBy_au_id";
}

#region Validation CRUD
public bool Insert(titles item)
{
titlesInsertValidation dummyResult = null;
return Insert(item, out dummyResult);
}
public bool Insert(titles item, out titlesInsertValidation result)
{
result = new titlesInsertValidation(item);

if (result.IsValid)
{
try
{
result.Item = (this as ItitlesWriteRepository).InsertAndGet(item);
return result.Item != null;
}
// Add Constraints Checks
catch (System.Data.SqlClient.SqlException ex)
{
}
}
return false;
}



public bool Update(titles item)
{
titlesUpdateValidation dummyResult = null;
return Update(item, out dummyResult);
}
public bool Update(titles item,out titlesUpdateValidation result)
{
result = new titlesUpdateValidation(item);

if (result.IsValid)
{
try
{
result.Item = (this as ItitlesWriteRepository).UpdateAndGet(item);
return result.Item !=null;
}
// Add Constraints Checks
catch (System.Data.SqlClient.SqlException ex)
{
}
}
return false;
}


public bool Delete(String title_id) => (this as ItitlesWriteRepository).Delete(title_id);
#endregion


}