public PagedList <FavouriteCategory> GetFavouriteCategories(FavouriteCategoryQueryFilter filters) { filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber; filters.PageSize = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize; var favouriteCategories = _unitOfWork.FavouriteCategoryRepository.GetAll(); if (filters.CustomerId != null) { favouriteCategories = favouriteCategories.Where(x => x.CustomerId == filters.CustomerId); } var pagedFavouriteCategories = PagedList <FavouriteCategory> .Create(favouriteCategories, filters.PageNumber, filters.PageSize); return(pagedFavouriteCategories); }
public IActionResult GetFavouriteCategories([FromQuery] FavouriteCategoryQueryFilter filters) { var favouriteCategories = _favouriteCategoryService.GetFavouriteCategories(filters); var favouriteCategoriesDtos = _mapper.Map <IEnumerable <FavouriteCategoryDto> >(favouriteCategories); var metadata = new Metadata { TotalCount = favouriteCategories.TotalCount, PageSize = favouriteCategories.PageSize, CurrentPage = favouriteCategories.CurrentPage, TotalPages = favouriteCategories.TotalPages, HasNextPage = favouriteCategories.HasNextPage, HasPreviousPage = favouriteCategories.HasPreviousPage, }; var response = new ApiResponse <IEnumerable <FavouriteCategoryDto> >(favouriteCategoriesDtos) { Meta = metadata }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); return(Ok(response)); }
public Uri GetFavouriteCategoryPaginationUri(FavouriteCategoryQueryFilter filter, string actionUrl) { string baseUrl = $"{_baseUri}{actionUrl}"; return(new Uri(baseUrl)); }