private string CreateUrl(PagedType pagedType, RejectParams rejectParams) { string url = string.Empty; switch (pagedType) { case PagedType.Previous: url = Url.Link(nameof(GetReject), new { PageSize = rejectParams.PageSize, PageNum = rejectParams.PageNum - 1 }); break; case PagedType.Next: url = Url.Link(nameof(GetReject), new { PageSize = rejectParams.PageSize, PageNum = rejectParams.PageNum + 1 }); break; default: throw new ArgumentOutOfRangeException(nameof(pagedType), pagedType, null); } return(url); }
public async Task <PagedList <SlReject> > GetRejectPaged(RejectParams rejectParams) { IQueryable <SlReject> itemRejects = _slrejectrepository.GetEntitys(); return(await PagedList <SlReject> .CreatePagedList(itemRejects, rejectParams.PageSize, rejectParams.PageNum)); }
public async Task <ActionResult <MessageModel <IEnumerable <SlRejectDto> > > > GetReject([FromQuery] RejectParams rejectParams) { MessageModel <IEnumerable <SlRejectDto> > res = new MessageModel <IEnumerable <SlRejectDto> >(); PagedList <SlReject> rejectPaged = await _slRejectServices.GetRejectPaged(rejectParams); string previousLink = rejectPaged.HasPrevious ? CreateUrl(PagedType.Previous, rejectParams) : null; string nextLink = rejectPaged.HasNext ? CreateUrl(PagedType.Next, rejectParams) : null; var pagination = new { currentPage = rejectPaged.PageNum, totalPage = rejectPaged.TotalPage, totalCount = rejectPaged.TotalCount, previousLink, nextLink }; HttpContext.Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(pagination)); res.Data = _mapper.Map <IEnumerable <SlRejectDto> >(rejectPaged); return(Ok(res)); }