Esempio n. 1
0
        public static async Task <PagedResponse <TResponse> > ToPagedResultAsync <TSource, TResponse>(
            this IQueryable <TSource> queryable,
            AbstractPagingFilter <TSource> filterRequest,
            Func <IEnumerable <TSource>, IEnumerable <TResponse> > resultMapper)
        {
            var(query, total) = filterRequest.ApplyTo(queryable);
            var data = filterRequest.CountOnly ? Enumerable.Empty <TSource>() : await query.ToListAsync();

            return(new PagedResponse <TResponse>(
                       await total(),
                       filterRequest.PageSize,
                       filterRequest.Page,
                       resultMapper(data).ToArray()));
        }
Esempio n. 2
0
 public async Task <PagedResponse <TResponse> > GetPagedAsync(AbstractPagingFilter <TEntity> queryExpression) =>
 await Query.ToPagedResultAsync(queryExpression, ResponseMapper.Map);