示例#1
0
        public async Task <IPagedList <Category> > GetPagedResult(int pageIndex, int pageSize, string orderProperty = "", bool asc = true)
        {
            var totalCount = await _categoryRepository.CountAll();

            var filteredCount            = totalCount;//filtered == total
            IPagedList <Category> result = new PagedList <Category>(
                _categoryRepository.Query().OrderBy(x => x.Name)
                .Skip((pageIndex - 1) * pageSize)
                .Take(pageSize),
                pageIndex,
                pageSize,
                filteredCount,
                totalCount);

            return(result);
        }
        public async Task <IPagedList <T> > GetPagedResult(int pageIndex, int pageSize, string orderProperty = "", bool asc = true)
        {
            Expression <Func <T, object> > orderLambda = x => x.Id;

            if (!string.IsNullOrWhiteSpace(orderProperty))
            {
                System.Reflection.PropertyInfo prop = typeof(T).GetProperty(orderProperty);
                orderLambda = x => prop.GetValue(x, null);
            }

            var totalCount = await _repository.CountAll();

            var            filteredCount = totalCount;
            IPagedList <T> result        = new PagedList <T>(
                _repository.Query().OrderBy(orderLambda)
                .Skip((pageIndex - 1) * pageSize)
                .Take(pageSize),
                pageIndex,
                pageSize,
                filteredCount,
                totalCount);

            return(result);
        }