public IActionResult GetPage([FromQuery] PagedQuery pageQuery, [FromQuery] FilterAndOrderQuery filterAndOrderQuery) { var httpUser = HttpContext.User; var claim = httpUser.Claims.Single(x => x.Type == "Id"); var id = claim.Value; var res = _projectService.FindPage(id, pageQuery, filterAndOrderQuery); var pageNum = (int)pageQuery.PageNum; var pageSize = (int)pageQuery.PageSize; var nextPage = pageNum >= 1 ? _uriService.GetAllUri(new PagedQuery(pageSize, pageNum + 1)).ToString() : null; var prevPage = pageQuery.PageNum - 1 >= 1 ? _uriService.GetAllUri(new PagedQuery(pageSize, pageNum - 1)).ToString() : null; res.NextPage = nextPage; res.PrevPage = prevPage; return(Ok(res)); }
public static PagedResponse <T> CreatePaginationResponse <T>(IUriService uriService, PaginationFilter pagination, IEnumerable <T> response) { var nextPage = pagination.PageNumber >= 1 ? uriService.GetAllUri(new PaginationQuery(pagination.PageNumber + 1, pagination.PageSize)).ToString() : null; var prevPage = pagination.PageNumber - 1 >= 1 ? uriService.GetAllUri(new PaginationQuery(pagination.PageNumber - 1, pagination.PageSize)).ToString() : null; return(new PagedResponse <T> { Data = response, NextPage = response.Any() ? nextPage.ToString() : null, PrevPage = prevPage?.ToString(), PageSize = pagination.PageSize >= 1 ? pagination.PageSize : (int?)null, PageNumber = pagination.PageNumber >= 1 ? pagination.PageNumber : (int?)null }); }
public static PagedResponse <T> CreatePaginatedResponse <T>(IUriService uriService, PaginationFilter pagination, List <T> response) { var nextPage = pagination.PageNumber >= 1 ? uriService.GetAllUri(new PaginationQuery(pagination.PageNumber + 1, pagination.PageSize)).ToString() : null; var previousPage = pagination.PageNumber - 1 >= 1 ? uriService.GetAllUri(new PaginationQuery(pagination.PageNumber - 1, pagination.PageSize)).ToString() : null; return(new PagedResponse <T> (response) { PageNumber = pagination.PageNumber >= 1 ? pagination.PageNumber : (int?)null, PageSize = pagination.PageSize >= 1 ? pagination.PageSize : (int?)null, NextPage = response.Any() ? nextPage : null, PreviousPage = previousPage }); }
internal static PagedResponse <T> CreatePaginatedResponse <T>( IUriService uriService, PaginationFilter paginationFilter, List <T> response, int total, string getAllApiPath) { var nextPage = paginationFilter.PageNumber >= 1 ? uriService .GetAllUri( getAllApiPath, new PaginationQuery( paginationFilter.PageNumber + 1, paginationFilter.PageSize)).ToString() : null; var previousPage = paginationFilter.PageNumber - 1 >= 1 ? uriService .GetAllUri( getAllApiPath, new PaginationQuery( paginationFilter.PageNumber - 1, paginationFilter.PageSize)).ToString() : null; int totalPage = (int)Math.Ceiling((double)total / paginationFilter.PageSize); return(new PagedResponse <T> { Data = response, PageNumber = paginationFilter.PageNumber >= 1 ? paginationFilter.PageNumber : (int?)null, PageSize = paginationFilter.PageSize >= 1 ? paginationFilter.PageSize : (int?)null, // calculate that we have next page or not NextPage = response.LongCount() < paginationFilter.PageSize ? null : (paginationFilter.PageNumber * paginationFilter.PageSize < total ? nextPage : null), PreviousPage = previousPage, TotalPage = totalPage == 0 ? 1 : totalPage }); }