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); }
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)); }