Implemented:

QueryBuilder.SelectWithWhere()
ClassAction.GetListWithWhere()
master
Alexander B 6 years ago
parent 64c8711754
commit 800941d59c

@ -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!

@ -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!

Loading…
Cancel
Save