public async Task <PagedEntityResult <Account> > LoadAll(PageInfoModel pageInfo = null) { var items = await _repository.PagedQuery(null, null, pageInfo); var result = new PagedEntityResult <Account> { Result = items.Result, TotalCount = items.TotalCount, PagingInfo = items.PagingInfo }; return(result); }
public PagedEntityResult <TEntity> PagedQuery(int pageSize, int pageNum, IQueryable <TEntity> query) { var pagedResult = new PagedEntityResult <TEntity>() { PageSize = pageSize, Count = query.Count() }; var pageCount = (double)pagedResult.Count / pageSize; pagedResult.PageCount = (int)Math.Ceiling(pageCount); var skip = (pageNum - 1) * pageSize; pagedResult.Result = query.Skip(skip).Take(pageSize).ToList(); return(pagedResult); }
public async Task <PagedEntityResult <TEntity> > PagedQuery(Expression <Func <TEntity, bool> > filter, Func <IQueryable <TEntity>, IOrderedQueryable <TEntity> > orderBy = null, PageInfoModel pageInfo = null, params Expression <Func <TEntity, object> >[] includeProperties ) { var query = QueryDb(filter, orderBy, pageInfo, includeProperties); int?skipCount = null; if (pageInfo != null && pageInfo.PageNumber.HasValue && pageInfo.PageSize.HasValue) { skipCount = pageInfo.PageNumber * pageInfo.PageSize; } var pagedEntity = new PagedEntityResult <TEntity>(query.AsQueryable(), new PageInfoModel { PageSize = pageInfo?.PageSize.GetValueOrDefault(), PageNumber = pageInfo?.PageNumber.GetValueOrDefault(), SortKey = pageInfo?.SortKey, SortDir = pageInfo?.SortDir }); if (skipCount.HasValue) { query = query.Skip(skipCount.Value); } if (pageInfo != null && pageInfo.PageSize.HasValue) { query = query.Take(pageInfo.PageSize.Value); } pagedEntity.Result = await query.AsNoTracking().ToListAsync(); return(pagedEntity); }