/// <summary> /// Get data count /// </summary> /// <param name="query">Query model</param> /// <returns>Return data count</returns> public async Task <long> CountAsync(IQuery query) { var countResult = WarehouseManager.Count <TEntity>(query); countResult.Count += await dataAccess.CountAsync(countResult.ComputeQuery).ConfigureAwait(false); return(countResult.Count); }
/// <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> /// 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)); } }