Exemple #1
0
        public async Task <IPagedListResult <TEntity> > GetAsPagedListAsync(IPagedListRequest <TEntity> pagedListRequest, Expression <Func <TEntity, bool> > filter = null,
                                                                            string includeProperties = null)
        {
            if (filter != null)
            {
                pagedListRequest.SetFilters(filter, out filter);
            }
            AddInterceptFilters(filter, out filter);
            if (pagedListRequest.PageNumber == 0)
            {
                pagedListRequest.PageNumber = 1;
            }

            if (pagedListRequest.PageSize == 0)
            {
                pagedListRequest.PageSize = 20;
            }
            //pageNumber is 1 indexed. so we do a -1.
            var skip = pagedListRequest.PageSize * (pagedListRequest.PageNumber - 1);
            var take = pagedListRequest.PageSize;

            var count = await GetQueryable(filter).CountAsync();

            if (pagedListRequest.Order.IsPopulated())
            {
                return(await GetQueryable(filter, null, includeProperties, skip, take).OrderBy(pagedListRequest.Order).ToPagedListAsync(count));
            }

            return(await GetQueryable(filter, null, includeProperties, skip, take).ToPagedListAsync(count));
        }
Exemple #2
0
        public async Task <IPagedListResult <TEntity> > GetAsPagedListAsync(IPagedListRequest <TEntity> pagedListRequest, Expression <Func <TEntity, bool> > filter = null,
                                                                            string includeProperties = null)
        {
            if (filter != null)
            {
                pagedListRequest.SetFilters(filter, out filter);
            }
            AddInterceptFilters(filter, out filter);
            if (pagedListRequest.PageNumber == 0)
            {
                pagedListRequest.PageNumber = 1;
            }

            if (pagedListRequest.PageSize == 0)
            {
                pagedListRequest.PageSize = ApplicationSettings.Pagination.PageSize;
            }
            //pageNumber is 1 indexed. so We for the first items to fetch we need to compute it from zero.
            var skip = pagedListRequest.PageSize * (pagedListRequest.PageNumber - 1);
            var take = pagedListRequest.PageSize;

            var count = await GetQueryable(filter).CountAsync();

            if (pagedListRequest.Order.IsPopulated())
            {
                return(await GetQueryable(filter, null, includeProperties, skip, take).OrderBy(pagedListRequest.Order).ToPagedListAsync(count));
            }

            return(await GetQueryable(filter, null, includeProperties, skip, take).ToPagedListAsync(count));
        }
Exemple #3
0
        public IPagedListResult <TEntity> GetAsPagedList(IPagedListRequest <TEntity> pagedListRequest, Expression <Func <TEntity, bool> > filter = null,
                                                         string includeProperties = null)
        {
            //pageNumber is 1 indexed. so We for the first items to fetch we need to compute it from zero.
            var skip = pagedListRequest.PageSize * (pagedListRequest.PageNumber - 1);
            var take = pagedListRequest.PageSize;

            pagedListRequest.SetFilters(filter, out filter);
            AddInterceptFilters(filter, out filter);
            var count = GetQueryable(filter).Count();

            if (pagedListRequest.Order.IsPopulated())
            {
                return(GetQueryable(filter, null, includeProperties).OrderBy(pagedListRequest.Order).Skip(skip).Take(take).ToPagedList(count));
            }

            return(GetQueryable(filter, null, includeProperties, skip, take).ToPagedList(count));
        }