예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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));
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        /// <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));
            }
        }