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)); }
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)); }
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)); }