public async Task <object> Remove <T>( string keyField, object value, string tableName = null, Query query = null) { DataManager dataManager = this; if (dataManager.Adaptor == Adaptors.CustomAdaptor) { return(await dataManager.BaseAdaptor.Remove(value, keyField, (string)null)); } if (!dataManager.DataAdaptor.IsRemote()) { return(!(dataManager.Json is Array) ? dataManager.DataAdaptor.Remove(dataManager, keyField, value) : BlazorAdaptor.RemoveArray <T>(dataManager, keyField, value)); } object obj = dataManager.DataAdaptor.Remove(dataManager, keyField, value, tableName, query); HttpRequestMessage request = dataManager.HttpHandler.PrepareRequest(obj as RequestOptions); dataManager.BeforeSend(request); object Data = await dataManager.DataAdaptor.PerformDataOperation <T>((object)request); return(await dataManager.DataAdaptor.ProcessCrudResponse <T>(Data, query?.Queries)); }
public async Task <object> SaveChanges <T>( object changed, object added, object deleted, string keyField, int?dropIndex, string tableName = null, Query query = null, object Original = null) { DataManager dataManager = this; Utils e = new Utils() { Url = tableName, Key = keyField }; if (dataManager.Adaptor == Adaptors.CustomAdaptor) { return(await dataManager.BaseAdaptor.BatchUpdate(changed, added, deleted, keyField, (string)null, dropIndex)); } if (dataManager.DataAdaptor.IsRemote()) { object obj = dataManager.DataAdaptor.BatchUpdate(dataManager, changed, added, deleted, e, keyField, dropIndex, query, Original); object queries = dataManager.DataAdaptor.GetName() == "ODataAdaptor" || dataManager.DataAdaptor.GetName() == "ODataV4Adaptor" ? (object)dataManager.HttpHandler.PrepareBatchRequest(obj as RequestOptions) : (object)dataManager.HttpHandler.PrepareRequest(obj as RequestOptions); dataManager.BeforeSend(queries as HttpRequestMessage); object Data = await dataManager.DataAdaptor.PerformDataOperation <T>(queries); return(dataManager.DataAdaptor.GetName() == "ODataAdaptor" || dataManager.DataAdaptor.GetName() == "ODataV4Adaptor" ? await dataManager.DataAdaptor.ProcessBatchResponse <T>(Data, query?.Queries) : await dataManager.DataAdaptor.ProcessCrudResponse <CRUDModel <T> >(Data, query?.Queries)); } return(!typeof(IDynamicMetaObjectProvider).IsAssignableFrom((((changed as IList).Count <= 0 ? ((added as IList).Count <= 0 ? deleted : added) : changed) as IEnumerable).Cast <object>().ToList <object>().FirstOrDefault <object>()?.GetType()) ? (!(dataManager.Json is Array) ? dataManager.DataAdaptor.BatchUpdate(dataManager, changed, added, deleted, e, keyField, dropIndex, query) : BlazorAdaptor.BatchUpdateArray <T>(dataManager, changed, added, deleted, e, keyField, dropIndex, query)) : dataManager.DataAdaptor.BatchUpdate(dataManager, (changed as IEnumerable).Cast <IDynamicMetaObjectProvider>().ToList <IDynamicMetaObjectProvider>(), (added as IEnumerable).Cast <IDynamicMetaObjectProvider>().ToList <IDynamicMetaObjectProvider>(), (deleted as IEnumerable).Cast <IDynamicMetaObjectProvider>().ToList <IDynamicMetaObjectProvider>(), e, keyField, dropIndex, query, (object)null)); }
public async Task <object> Insert <T>( object data, string tableName = null, Query query = null, int position = 0) { DataManager dataManager = this; if (dataManager.Adaptor == Adaptors.CustomAdaptor) { return(await dataManager.BaseAdaptor.Insert(data)); } if (!dataManager.DataAdaptor.IsRemote()) { return(!typeof(IDynamicMetaObjectProvider).IsAssignableFrom(data.GetType()) ? (!(dataManager.Json is Array) ? dataManager.DataAdaptor.Insert(dataManager, data, tableName, query, position) : BlazorAdaptor.InsertArray <T>(dataManager, data, position)) : dataManager.DataAdaptor.Insert(dataManager, data as IDynamicMetaObjectProvider, tableName, query, position)); } object obj = dataManager.DataAdaptor.Insert(dataManager, data, tableName, query, position); HttpRequestMessage request = dataManager.HttpHandler.PrepareRequest(obj as RequestOptions); dataManager.BeforeSend(request); object Data = await dataManager.DataAdaptor.PerformDataOperation <T>((object)request); return(await dataManager.DataAdaptor.ProcessCrudResponse <T>(Data, query?.Queries)); }