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
            });
        }
Пример #3
0
        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
            });
        }
Пример #4
0
        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
            });
        }