2 Commits

Author SHA1 Message Date
Alexander B
40936fafcd Set version to 1.5.9 2019-05-15 12:11:23 +02:00
Alexander B
800941d59c Implemented:
QueryBuilder.SelectWithWhere()
ClassAction.GetListWithWhere()
2019-05-15 12:11:01 +02:00
3 changed files with 47 additions and 1 deletions

View File

@@ -127,6 +127,34 @@ namespace eu.railduction.netcore.dll.Database_Attribute_System
return obj; return obj;
} }
// ----
/// <summary>
/// Gets an dbObject by primaryKey/s
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="classObject">Given object (marked with Db-attributes)</param>
/// <param name="whereClause">Custom where-clause params attached to query (SELECT * FROM tableName WHERE whereClause)</param>
/// <param name="queryExecutor">Function to handle query-calls - Has to return Dictionary[attributeName, attributeValue]</param>
public static List<T> GetListWithWhere<T>(Type classType, Func<string, List<Dictionary<string, object>>> queryExecutor, params object[] whereClause) where T : new()
{
// Read dbObject - attribute
DbObject dbObject = ClassAction.Init(classType);
string query = QueryBuilder.SelectWithWhere(dbObject._tableName, whereClause); // Generate query
List<Dictionary<string, object>> dataSet = queryExecutor(query); // Execute
List<T> objs = new List<T>() { };
foreach (Dictionary<string, object> data in dataSet)
{
T obj = new T(); // New object
FillObject(obj, data); // Fill it
objs.Add(obj); // Add to list
}
return objs; // Return list
}
/// <summary> /// <summary>
/// Resolves dbObject by primaryKey/s<pragma/> /// Resolves dbObject by primaryKey/s<pragma/>
/// Object needs to have primaryKey/s set! /// Object needs to have primaryKey/s set!

View File

@@ -4,7 +4,7 @@
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.1</TargetFramework>
<RootNamespace>eu.railduction.netcore.dll.Database_Attribute_System</RootNamespace> <RootNamespace>eu.railduction.netcore.dll.Database_Attribute_System</RootNamespace>
<SignAssembly>false</SignAssembly> <SignAssembly>false</SignAssembly>
<Version>1.5.8</Version> <Version>1.5.9</Version>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@@ -56,6 +56,24 @@ namespace eu.railduction.netcore.dll.Database_Attribute_System
return BuildQuery(param); return BuildQuery(param);
} }
/// <summary>
/// Builds an SELECT-Sql-query based on an object with custom where clause<para/>
/// Object needs to have at least 1 attribute!
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="tableName">The db-table-name</param>
/// <param name="whereClause">Custom where-clause params attached to query (SELECT * FROM tableName WHERE whereClause)</param>
/// <returns>SELECT-Sql-query</returns>
public static string SelectWithWhere(string tableName, params object[] whereClause)
{
string sqlCmd = $"SELECT * FROM {tableName}";
// Add SQL-command part
whereClause[0] = $"{sqlCmd} WHERE {whereClause[0]}";
// Build and return the query
return BuildQuery(whereClause);
}
/// <summary> /// <summary>
/// Builds an UPDATE-Sql-query based on an object<para/> /// Builds an UPDATE-Sql-query based on an object<para/>
/// Object needs to have at least 1 primary-key! /// Object needs to have at least 1 primary-key!