public static BasePaginationParams ConvertToBasePagination(this BasePaginationParams _params, HttpContext context)
 {
     _params.Pagenumber  = int.Parse(context.Request.Headers["PageNumber"]);
     _params.Pagesize    = int.Parse(context.Request.Headers["PageSize"]);
     _params.MinDateTime = DateTime.Parse(context.Request.Headers["minDateTime"]);
     _params.MaxDateTime = DateTime.Parse(context.Request.Headers["maxDateTime"]);
     return(_params);
 }
Пример #2
0
        private void FillPagination(BasePaginationParams parameters, int totalCount)
        {
            this.Pagination.CurrentPage = parameters.page;
            this.Pagination.PageSize    = parameters.size;
            this.Pagination.TotalCount  = totalCount;
            this.Pagination.TotalPages  = (int)Math.Ceiling(totalCount / (double)parameters.size);

            if (this.Pagination.CurrentPage > this.Pagination.TotalPages)
            {
                throw new ArgumentException("The current page cannot be greater than total pages size");
            }
        }
Пример #3
0
        public PagedResponse <T> ToPagedResponse <TIn>(IQueryable <TIn> data, BasePaginationParams pagination, Func <object, IEnumerable <T> > convert) where TIn : class
        {
            if (convert == null)
            {
                throw new ArgumentException("Convert function cannot be null");
            }

            FillPagination(pagination, data.Count());

            IEnumerable <TIn> pagedResponse = data.Skip((pagination.page - 1) * pagination.size).Take(pagination.size);

            this.Data = convert(pagedResponse.ToList());

            return(this);
        }
Пример #4
0
        private void ToPagedResponse(IQueryable <T> data, BasePaginationParams pagination)
        {
            FillPagination(pagination, data.Count());

            this.Data = data.Skip((pagination.page - 1) * pagination.size).Take(pagination.size).ToList();
        }
Пример #5
0
 private void ToPagedResponse(IEnumerable <T> data, BasePaginationParams pagination)
 {
     FillPagination(pagination, data.Count());
 }
Пример #6
0
 public PagedResponse(IQueryable <T> data, BasePaginationParams parameters) : this()
 {
     ToPagedResponse(data, parameters);
 }