Exemplo n.º 1
0
        /// <summary>
        /// Process Queriable
        /// </summary>
        /// <param name="queriable"></param>
        /// <param name="requestModel"></param>
        /// <param name="isSorting"></param>
        /// <param name="selector"></param>
        /// <typeparam name="TInput"></typeparam>
        /// <exception cref="ArgumentNullException"></exception>
        public static async Task ProcessQueriable <TInput, TOutput>(
            this BaseListResultViewModel <TOutput> baseList, IQueryable <TInput> queriable,
            BaseListRequestViewModel requestModel, bool isSorting,
            Func <TInput, TOutput> selector)
            where TOutput : class
        {
            if (requestModel == null)
            {
                throw new ArgumentNullException(nameof(requestModel));
            }

            if (baseList == null)
            {
                throw new ArgumentNullException(nameof(baseList));
            }

            baseList.PageNumber = requestModel.PageNumber;
            baseList.PageSize   = requestModel.PageSize;

            baseList.Data = (await queriable
                             .ApplyList(requestModel, isSorting)
                             .ToListAsync())
                            .Select(selector)
                            .ToList();

            baseList.CheckAndSetNext();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Get list result model
        /// </summary>
        /// <typeparam name="TInput"></typeparam>
        /// <typeparam name="TOutput"></typeparam>
        /// <param name="queriable"></param>
        /// <param name="requestModel"></param>
        /// <param name="isSorting"></param>
        /// <param name="selector"></param>
        /// <returns></returns>
        public static async Task <BaseListResultViewModel <TOutput> > ToListModel <TInput, TOutput>(
            this IQueryable <TInput> queriable,
            BaseListRequestViewModel requestModel,
            bool isSorting,
            Func <TInput, TOutput> selector)
            where TOutput : class
        {
            if (requestModel == null)
            {
                throw new ArgumentNullException(nameof(requestModel));
            }

            if (selector == null)
            {
                throw new ArgumentNullException(nameof(selector));
            }

            var baseList = new BaseListResultViewModel <TOutput>
            {
                PageNumber = requestModel.PageNumber,
                PageSize   = requestModel.PageSize,
                Data       = (await queriable
                              .ApplyList(requestModel, isSorting)
                              .ToListAsync())
                             .Select(selector)
                             .ToList()
            };

            baseList.CheckAndSetNext();
            return(baseList);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Process Queriable
 /// </summary>
 /// <param name="queriable"></param>
 /// <param name="requestModel"></param>
 /// <param name="selector"></param>
 /// <typeparam name="TInput"></typeparam>
 public static async Task ProcessQueriable <TInput, TOutput>(
     this BaseListResultViewModel <TOutput> baseList, IQueryable <TInput> queriable,
     BaseListRequestViewModel requestModel,
     Func <TInput, TOutput> selector)
     where TOutput : class
 {
     await ProcessQueriable(baseList, queriable, requestModel, true, selector);
 }