コード例 #1
0
ファイル: PaginationHelper.cs プロジェクト: yakubovych/PetUA
        public static Pagination <T> CreatePaginatedResponse <T, K>(IUriService uriService, ArticlePaginationQuery paginationQuery,
                                                                    ICollection <T> response, ICollection <K> allArticles, string specificUrl, ArticleQuery query)
        {
            var totalPages = Math.Ceiling((double)allArticles.Count / paginationQuery.PageSize);
            var nextPage   = (paginationQuery.PageNumber >= 1 && paginationQuery.PageNumber < totalPages)
               ? uriService.GetAllPostUri(specificUrl, new ArticlePaginationQuery()
            {
                PageNumber = paginationQuery.PageNumber + 1,
                PageSize   = paginationQuery.PageSize
            }, query).ToString()
               : null;
            var previousPage = paginationQuery.PageNumber - 1 >= 1
               ? uriService.GetAllPostUri(specificUrl, new ArticlePaginationQuery()
            {
                PageNumber = paginationQuery.PageNumber - 1,
                PageSize   = paginationQuery.PageSize
            }, query).ToString()
               : null;

            var paginationResponse = new Pagination <T>
            {
                Data         = response.AsEnumerable(),
                PageNumber   = paginationQuery.PageNumber >= 1 ? paginationQuery.PageNumber : (int?)null,
                PageSize     = paginationQuery.PageSize >= 1 ? paginationQuery.PageSize : (int?)null,
                NextPage     = response.Any() ? nextPage : null,
                PreviousPage = previousPage,
                TotalPages   = totalPages
            };

            return(paginationResponse);
        }
コード例 #2
0
        public static PagedResponse <T> CreatePaginatedResponse <T>(IUriService uriService, PaginationFilter paginationFilter, List <T> elements)
        {
            string nextPage = paginationFilter.PageNumber >= 1 ?
                              uriService.GetAllPostUri(new PaginationQuery(paginationFilter.PageNumber + 1, paginationFilter.PageSize)).ToString() : null;

            string previousPage = paginationFilter.PageNumber - 1 >= 1 ?
                                  uriService.GetAllPostUri(new PaginationQuery(paginationFilter.PageNumber - 1, paginationFilter.PageSize)).ToString() : null;

            return(new PagedResponse <T>
            {
                Data = elements,
                PageNumber = paginationFilter.PageNumber >= 1 ? paginationFilter.PageNumber : (int?)null,
                PageSize = paginationFilter.PageSize >= 1 ? paginationFilter.PageSize : (int?)null,
                NextPage = elements.Count != 0 ? nextPage : null,
                PreviousPage = previousPage
            });
        }
        public static PaginationResponse <T> CreatePaginatedResponse <T>(IUriService uriService, PaginationFilter pagination, List <T> response)
        {
            var nextPage = pagination.PageNumber >= 1
                ? uriService.GetAllPostUri(new PaginationQuery(pagination.PageNumber + 1, pagination.PageSize)).ToString() : null;

            var previousPage = pagination.PageNumber - 1 >= 1
                ? uriService.GetAllPostUri(new PaginationQuery(pagination.PageNumber - 1, pagination.PageSize)).ToString() : null;

            return(new PaginationResponse <T>
            {
                Data = 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
        public static Paged <T> CreatePaginationResponse <T>(IUriService _uriService, PaginationQuery pagination, List <T> response)
        {
            var nextPage = pagination.PageNumber >= 1 ?
                           _uriService.GetAllPostUri(new PaginationQuery(pagination.PageNumber + 1, pagination.PageSize)).ToString() : null;

            var previousPage = pagination.PageNumber - 1 >= 1 ?
                               _uriService.GetAllPostUri(new PaginationQuery(pagination.PageNumber - 1, pagination.PageSize)).ToString() : null;

            return(new Paged <T>()
            {
                Data = response,
                PageNumber = pagination.PageSize >= 1 ? pagination.PageNumber : (int?)null,
                PageSize = pagination.PageSize >= 1 ? pagination.PageSize : (int?)null,
                TotalRecords = response.Count(),
                Next = response.Any() ? nextPage : null,
                Previous = previousPage
            });
        }
コード例 #5
0
        public static PaginationResponse <T> CreateResponse <T>(IUriService uriService, List <T> postsResponse, PaginationFilter paginationFilter)
        {
            var prevPath = paginationFilter.PageNumber > 1
                ? uriService.GetAllPostUri(new PaginationQuery(paginationFilter.PageNumber - 1, paginationFilter.PageSize)).ToString()
                : null;

            var nextPath =
                uriService.GetAllPostUri(new PaginationQuery(paginationFilter.PageNumber + 1, paginationFilter.PageSize))
                .ToString();

            return(new PaginationResponse <T>
            {
                Data = postsResponse,
                PageSize = paginationFilter.PageSize,
                PageNumber = paginationFilter.PageNumber,
                PreviousPage = prevPath,
                NextPage = postsResponse.Any() ? nextPath : null
            });
        }
コード例 #6
0
        public static object CreatePaginationResponse <T>(IUriService uriService, PaginationFilter paginationFilter, List <T> posts)
        {
            var nextPage = paginationFilter.PageNumber >= 1
                ? uriService.GetAllPostUri(new PaginationQuery(paginationFilter.PageNumber + 1, paginationFilter.PageSize)).ToString()
                : null;

            var previousPage = paginationFilter.PageNumber - 1 >= 1
                ? uriService.GetAllPostUri(new PaginationQuery(paginationFilter.PageNumber - 1, paginationFilter.PageSize)).ToString()
                : null;

            var paginationResponse = new PagedResponse <T>
            {
                Data         = posts,
                PageNumber   = paginationFilter.PageNumber >= 1 ? paginationFilter.PageNumber : (int?)null,
                PageSize     = paginationFilter.PageSize >= 1 ? paginationFilter.PageSize : (int?)null,
                NextPage     = posts.Any() ? nextPage : null,
                PreviousPage = previousPage
            };

            return(paginationResponse);
        }