/// <summary> /// Exist data /// </summary> /// <param name="query">Query object</param> /// <returns>Return whether has data</returns> public async Task <bool> ExistAsync(IQuery query) { var result = WarehouseManager.Exist <TEntity>(query); var isExist = result.IsExist; return(await Task.FromResult(isExist).ConfigureAwait(false));; }
/// <summary> /// Query data paging /// </summary> /// <param name="query">Query object</param> /// <returns>Return data paging</returns> public async Task <IPaging <TEntity> > GetPagingAsync(IQuery query) { var paging = Pager.Empty <TEntity>(); paging = WarehouseManager.MergePaging(paging, query); return(await Task.FromResult(paging).ConfigureAwait(false)); }
/// <summary> /// Query data list /// </summary> /// <param name="query">Query model</param> /// <returns>Return data list</returns> public async Task <List <TEntity> > GetListAsync(IQuery query) { var datas = await dataAccess.GetListAsync(query).ConfigureAwait(false); datas = WarehouseManager.Merge <TEntity>(datas, query); return(datas); }
/// <summary> /// Remove data /// </summary> /// <param name="data">Data</param> /// <param name="activationOption">Activation option</param> /// <returns>Return the activation record</returns> public IActivationRecord Remove(TEntity data, ActivationOption activationOption = null) { WarehouseManager.Remove(data); var identityValue = data.GetIdentityValue(); return(DefaultActivationRecord <TEntity, TDataAccess> .CreateRemoveObjectRecord(identityValue, activationOption)); }
/// <summary> /// Query data list /// </summary> /// <param name="query">Query object</param> /// <returns>Return data list</returns> public async Task <List <TEntity> > GetListAsync(IQuery query) { var datas = new List <TEntity>(0); datas = WarehouseManager.Merge(datas, query); return(await Task.FromResult(datas).ConfigureAwait(false)); }
/// <summary> /// Query data /// </summary> /// <param name="query">Query object</param> /// <returns>Return entity data</returns> public async Task <TEntity> GetAsync(IQuery query) { TEntity data = null; data = WarehouseManager.Merge(data, query); return(await Task.FromResult(data).ConfigureAwait(false)); }
/// <summary> /// Query data paging /// </summary> /// <param name="query">Query model</param> /// <returns>Return data paging</returns> public async Task <IPaging <TEntity> > GetPagingAsync(IQuery query) { var paging = await dataAccess.GetPagingAsync(query).ConfigureAwait(false); paging = WarehouseManager.MergePaging(paging, query); return(paging); }
/// <summary> /// Query data /// </summary> /// <param name="query">Query object</param> /// <returns>Return data</returns> public async Task <TEntity> GetAsync(IQuery query) { var data = await dataAccess.GetAsync(query).ConfigureAwait(false); data = WarehouseManager.Merge(data, query); return(data); }
/// <summary> /// Modify /// </summary> /// <param name="modifyExpression">Modify expression</param> /// <param name="query">Query object</param> /// <returns>Return the activation record</returns> public IActivationRecord Modify(IModify modifyExpression, IQuery query, ActivationOption activationOption = null) { WarehouseManager.Modify <TEntity>(modifyExpression, query); var record = DefaultActivationRecord <TEntity, TDataAccess> .CreateModifyRecord(modifyExpression, query, activationOption); return(record); }
/// <summary> /// Remove /// </summary> /// <param name="query">Query object</param> /// <returns>Return the activation record</returns> public IActivationRecord Remove(IQuery query, ActivationOption activationOption = null) { WarehouseManager.Remove <TEntity>(query); var record = DefaultActivationRecord <TEntity, TDataAccess> .CreateRemoveByConditionRecord(query, activationOption); return(record); }
/// <summary> /// Get sum value /// </summary> /// <typeparam name="TValue">Value type</typeparam> /// <param name="query">Query object</param> /// <returns>Return the sum value</returns> public async Task <TValue> SumAsync <TValue>(IQuery query) { var sumResult = WarehouseManager.Sum <TEntity, TValue>(query); dynamic resultVal = sumResult.Value; return(await Task.FromResult(resultVal).ConfigureAwait(false)); }
/// <summary> /// Get life source /// </summary> /// <param name="data">Data</param> /// <returns>Return the data life source</returns> public DataLifeSource GetLifeSource(TEntity data) { if (data == null) { return(DataLifeSource.New); } return(WarehouseManager.GetLifeSource(data)); }
/// <summary> /// Get Sum Value /// </summary> /// <typeparam name="TValue">Value type</typeparam> /// <param name="query">Query model</param> /// <returns>Return the sum value</returns> public async Task <TValue> SumAsync <TValue>(IQuery query) { var sumResult = WarehouseManager.Sum <TEntity, TValue>(query); dynamic resultVal = sumResult.Value; dynamic sumValue = await dataAccess.SumAsync <TValue>(sumResult.ComputeQuery).ConfigureAwait(false); return(sumResult.ValidValue ? resultVal + sumValue : sumValue); }
/// <summary> /// Get min value /// </summary> /// <typeparam name="TValue">Value type</typeparam> /// <param name="query">Query model</param> /// <returns>Return the min value</returns> public async Task <TValue> MinAsync <TValue>(IQuery query) { var minResult = WarehouseManager.Min <TEntity, TValue>(query); dynamic resultVal = minResult.Value; dynamic minValue = await dataAccess.MinAsync <TValue>(minResult.ComputeQuery).ConfigureAwait(false); return(minResult.ValidValue ? (resultVal < minValue ? resultVal : minValue) : minValue); }
/// <summary> /// Get data count /// </summary> /// <param name="query">Query object</param> /// <returns>Return data count</returns> public async Task <long> CountAsync(IQuery query) { long allCount = 0; var countResult = WarehouseManager.Count <TEntity>(query); allCount = allCount - countResult.PersistentDataCount + countResult.NewDataCount; return(await Task.FromResult(allCount).ConfigureAwait(false)); }
/// <summary> /// Get data count /// </summary> /// <param name="query">Query model</param> /// <returns>Return data count</returns> public async Task <long> CountAsync(IQuery query) { var allCount = await dataAccess.CountAsync(query).ConfigureAwait(false); var countResult = WarehouseManager.Count <TEntity>(query); allCount = allCount - countResult.PersistentDataRemoveCount + countResult.NewDataCount; return(allCount); }
/// <summary> /// Exist data /// </summary> /// <param name="query">Query model</param> /// <returns>Return whether data is exist</returns> public async Task <bool> ExistAsync(IQuery query) { var result = WarehouseManager.Exist <TEntity>(query); var isExist = result.IsExist; if (!isExist) { isExist = await dataAccess.ExistAsync(result.CheckQuery).ConfigureAwait(false); } return(isExist); }
/// <summary> /// Get Average Value /// </summary> /// <typeparam name="TValue">Value type</typeparam> /// <param name="query">Query model</param> /// <returns>Return the average value</returns> public async Task <TValue> AvgAsync <TValue>(IQuery query) { var countResult = WarehouseManager.Count <TEntity>(query); if (countResult.TotalDataCount > 0) { dynamic sum = await SumAsync <TValue>(query).ConfigureAwait(false); var count = await CountAsync(query).ConfigureAwait(false); return(sum / count); } else { return(await dataAccess.AvgAsync <TValue>(query).ConfigureAwait(false)); } }
/// <summary> /// Modify life status /// </summary> /// <param name="data">Data</param> /// <param name="lifeSource">Life source</param> public void ModifyLifeSource(TEntity data, DataLifeSource lifeSource) { WarehouseManager.ModifyLifeSource(data, lifeSource); }