public static DirectQueryLoader <T> Select <T>(this DirectQueryLoader <T> loader, string input) where T : DirectModel { input = input.Trim(); using (var tempValue = (T)Activator.CreateInstance(typeof(T), (DirectDatabaseBase)loader.Database)) { if (input.Equals("*")) { return(loader); } if (loader.Select.Equals("id")) { loader.Select = tempValue.IdName; } else if (!string.IsNullOrEmpty(input)) { if (input.Contains("[id]")) { input = input.Replace("[id]", tempValue.IdName); } loader.Select = tempValue.IdName + "," + input; } else { loader.Select = "*"; } } return(loader); }
// // LOAD BY ID (string) // internal static string ContructLoadByStringID <T>(this DirectQueryLoader <T> loader, string id) where T : DirectModel { return(string.Format(loader.Database.QueryContructLoadByStringID, loader.SelectQuery, loader.Instance.GetTableName(), loader.Instance.GetIdNameValue(), id)); }
// // LOAD BY WHERE // internal static string ContructLoad <T>(this DirectQueryLoader <T> loader) where T : DirectModel { return(string.Format(loader.Database.QueryContructLoad, loader.SelectQuery, loader.Instance.TableName, loader.WhereQuery, loader.Additional)); }
public static IEnumerable <T> LoadEnumerable <T>(this DirectQueryLoader <T> loader) where T : DirectModel { foreach (var row in loader.Database.Loader.LoadEnumerable <T>(loader.ContructLoad())) { row.Database = loader.Database; yield return(row); } yield break; }
public static async IAsyncEnumerable <T> LoadEnumerableAsync <T>(this DirectQueryLoader <T> loader) where T : DirectModel { await foreach (var row in loader.Database.Loader.LoadEnumerableAsync <T>(loader.ContructLoad())) { row.SetDatabase(loader.Database); yield return(row); } yield break; }
public static T LoadLater <T>(this DirectQueryLoader <T> loader) where T : DirectModel { using (var tempValue = (T)Activator.CreateInstance(typeof(T), (DirectDatabaseBase)null)) loader.Select = tempValue.IdName; T temp = (T)Activator.CreateInstance(typeof(T), loader.Database); loader.Database.TransactionalManager.Load(temp, loader.ContructLoad()); return(temp); }
/// <summary> /// Loads dynamic object (values not selected will not be present) /// </summary> /// <typeparam name="T"></typeparam> /// <param name="loader"></param> /// <returns></returns> public static async Task <dynamic> LoadDynamicAsync <T>(this DirectQueryLoader <T> loader) where T : DirectModel { string command = string.Format(loader.Database.QueryContructLoad, loader.SelectQuery, loader.Instance.GetTableName(), loader.WhereQuery, loader.Additional); return((await loader.Database.LoadAsync(command)).RawData); }
public static T Load <T>(this DirectQueryLoader <T> loader, long id) where T : DirectModel { var data = loader.Database.LoadSingle <T>(loader.ContructLoadByID(id)); if (data != null) { data.Database = loader.Database; } return(data); }
public static T Load <T>(this DirectQueryLoader <T> loader, string query) where T : DirectModel { var result = loader.Database.LoadSingle <T>(query); if (result != null) { result.Snapshot.SetSnapshot(); result.Database = loader.Database; } return(result); }
public static T LoadByGuid <T>(this DirectQueryLoader <T> loader, string id) where T : DirectModel { var data = loader.Database.LoadSingle <T>(loader.ContructLoadByStringID(id)); if (data != null) { data.Snapshot.SetSnapshot(); data.Database = loader.Database; } return(data); }
public static DirectQueryLoader <T> Where <T>(this DirectQueryLoader <T> loader, string input, params object[] parameters) where T : DirectModel { if (input.Contains("[id]")) { using (var tempValue = (T)Activator.CreateInstance(typeof(T), (DirectDatabaseBase)loader.Database)) input = input.Replace("[id]", tempValue.IdName); } loader.SetWhere(input, parameters); return(loader); }
public static async Task <T> LoadAsync <T>(this DirectQueryLoader <T> loader, string query) where T : DirectModel { var data = await loader.Database.LoadSingleAsync <T>(query);; if (data != null) { data.Snapshot.SetSnapshot(); data.SetDatabase(loader.Database); } return(data); }
public static List <T> Load <T>(this DirectQueryLoader <T> loader) where T : DirectModel { List <T> result = new List <T>(); foreach (var entry in LoadEnumerable <T>(loader)) { entry.Snapshot.SetSnapshot(); entry.Database = loader.Database; result.Add(entry); } return(result); }
public static async Task <int> CountAsync <T>(this DirectQueryLoader <T> loader) where T : DirectModel { string command = string.Format(loader.Database.QueryCount, loader.Instance.GetTableName(), loader.WhereQuery); int?result = await loader.Database.LoadIntAsync(command); if (result.HasValue) { return(result.Value); } return(-1); }
public static async Task <T> LoadByGuidAsync <T>(this DirectQueryLoader <T> loader, string id) where T : DirectModel { string command = string.Format(loader.Database.QueryContructLoadByStringID, loader.SelectQuery, loader.Instance.GetTableName(), loader.Instance.GetIdNameValue(), id); var data = await loader.Database.LoadSingleAsync <T>(command); if (data != null) { data.Snapshot.SetSnapshot(); data.SetDatabase(loader.Database); } return(data); }
/// <summary> /// Load single DirectModel async /// </summary> /// <typeparam name="T"></typeparam> /// <param name="loader"></param> /// <returns></returns> public static async Task <T> LoadSingleAsync <T>(this DirectQueryLoader <T> loader) where T : DirectModel { string command = string.Format(loader.Database.QueryLoadSingle, loader.SelectQuery, loader.Instance.GetTableName(), loader.WhereQuery); var data = await loader.Database.LoadSingleAsync <T>(command); if (data != null) { data.Snapshot.SetSnapshot(); data.SetDatabase(loader.Database); } return(data); }
public static T LoadSingle <T>(this DirectQueryLoader <T> loader) where T : DirectModel { string command = string.Format(loader.Database.QueryLoadSingle, loader.SelectQuery, loader.Instance.TableName, loader.WhereQuery); var data = loader.Database.LoadSingle <T>(command); if (data != null) { data.Snapshot.SetSnapshot(); data.Database = loader.Database; } return(data); }
public static async Task <List <T> > LoadAsync <T>(this DirectQueryLoader <T> loader) where T : DirectModel { string command = string.Format(loader.Database.QueryContructLoadWithLimitConstruct <T>(loader), loader.SelectQuery, loader.Instance.GetTableName(), loader.WhereQuery, loader.Additional); List <T> result = new List <T>(); foreach (var row in await loader.Database.LoadAsync <T>(command)) { row.Snapshot.SetSnapshot(); row.SetDatabase(loader.Database); result.Add(row); } return(result); }
public static DirectQueryLoader <T> Limit <T>(this DirectQueryLoader <T> loader, int input) where T : DirectModel { loader.Limit = input; return(loader); }
public static DirectQueryLoader <T> Additional <T>(this DirectQueryLoader <T> loader, string input) where T : DirectModel { loader.Additional = input; return(loader); }
public static T Load <T>(this DirectQueryLoader <T> loader, int id) where T : DirectModel => Load(loader, (long)id);