private string CreateUrl(PagedType pagedType, SlSaleOrderParams slSaleOrderParams)
        {
            string url = string.Empty;

            switch (pagedType)
            {
            case PagedType.Previous:
                url = Url.Link(nameof(GetSaleOrder), new
                {
                    PageSize = slSaleOrderParams.PageSize,
                    PageNum  = slSaleOrderParams.PageNum - 1
                });
                break;

            case PagedType.Next:
                url = Url.Link(nameof(GetSaleOrder), new
                {
                    PageSize = slSaleOrderParams.PageSize,
                    PageNum  = slSaleOrderParams.PageNum + 1
                });
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(pagedType), pagedType, null);
            }
            return(url);
        }
Example #2
0
        public async Task <PagedList <SlSaleOrder> > GetSaleOrderPaged(SlSaleOrderParams slSaleOrderParams)
        {
            IQueryable <SlSaleOrder> itemOrders = _slsaleorderrepository.GetEntitys();

            return(await PagedList <SlSaleOrder> .CreatePagedList(itemOrders, slSaleOrderParams.PageSize, slSaleOrderParams.PageNum));
        }
        public async Task <ActionResult <MessageModel <SlSaleOrderDto> > > GetSaleOrder([FromQuery] SlSaleOrderParams slSaleOrderParams)
        {
            MessageModel <IEnumerable <SlSaleOrderDto> > res = new MessageModel <IEnumerable <SlSaleOrderDto> >();
            PagedList <SlSaleOrder> saleOrderPaged           = await _slSaleOrderServices.GetSaleOrderPaged(slSaleOrderParams);

            string previousLink = saleOrderPaged.HasPrevious ? CreateUrl(PagedType.Previous, slSaleOrderParams) : null;
            string nextLink     = saleOrderPaged.HasNext ? CreateUrl(PagedType.Next, slSaleOrderParams) : null;
            var    pagination   = new
            {
                currentPage = saleOrderPaged.PageNum,
                totalPage   = saleOrderPaged.TotalPage,
                totalCount  = saleOrderPaged.TotalCount,
                previousLink,
                nextLink
            };

            HttpContext.Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(pagination));
            res.Data = _mapper.Map <IEnumerable <SlSaleOrderDto> >(saleOrderPaged);
            return(Ok(res));
        }