Пример #1
0
        public Uri GetAllPostUri(string specificUrl, AnimalPaginationQuery pagination, AnimalQuery query)
        {
            var stringHelper = _baseUri;

            _baseUri += specificUrl;
            var uri         = new Uri(_baseUri);
            var modifiedUrl = _baseUri;

            if (!string.IsNullOrWhiteSpace(query.Weight))
            {
                modifiedUrl = QueryHelpers.AddQueryString(modifiedUrl, "weight", query.Weight);
            }
            if (!string.IsNullOrWhiteSpace(query.IsNew))
            {
                modifiedUrl = QueryHelpers.AddQueryString(modifiedUrl, "isNew", query.IsNew);
            }
            if (!string.IsNullOrWhiteSpace(query.IsDisabled))
            {
                modifiedUrl = QueryHelpers.AddQueryString(modifiedUrl, "isDisabled", query.IsDisabled);
            }
            if (!string.IsNullOrWhiteSpace(query.Gender))
            {
                modifiedUrl = QueryHelpers.AddQueryString(modifiedUrl, "gender", query.Gender);
            }
            if (!string.IsNullOrWhiteSpace(query.Category))
            {
                modifiedUrl = QueryHelpers.AddQueryString(modifiedUrl, "category", query.Category);
            }
            if (!string.IsNullOrWhiteSpace(query.DateOfBirth))
            {
                modifiedUrl = QueryHelpers.AddQueryString(modifiedUrl, "dateOfBirth", query.DateOfBirth);
            }

            if (pagination == null)
            {
                return(uri);
            }
            modifiedUrl = QueryHelpers.AddQueryString(modifiedUrl, "pageNumber", pagination.PageNumber.ToString());
            modifiedUrl = QueryHelpers.AddQueryString(modifiedUrl, "pageSize", pagination.PageSize.ToString());

            _baseUri = stringHelper;

            return(new Uri(modifiedUrl));
        }
Пример #2
0
        public static Pagination <T> CreatePaginatedResponse <T, K>(IUriService uriService, AnimalPaginationQuery paginationQuery,
                                                                    ICollection <T> response, ICollection <K> allAnimals, string specificUrl, AnimalQuery query)
        {
            var totalPages = Math.Ceiling((double)allAnimals.Count / paginationQuery.PageSize);
            var nextPage   = (paginationQuery.PageNumber >= 1 && paginationQuery.PageNumber < totalPages)
               ? uriService.GetAllPostUri(specificUrl, new AnimalPaginationQuery()
            {
                PageNumber = paginationQuery.PageNumber + 1,
                PageSize   = paginationQuery.PageSize
            }, query).ToString()
               : null;
            var previousPage = paginationQuery.PageNumber - 1 >= 1
               ? uriService.GetAllPostUri(specificUrl, new AnimalPaginationQuery()
            {
                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);
        }