Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }