public async Task <ActionResult> GetAll([FromQuery] CategoriesParameters parameters)
        {
            try
            {
                var categories = await UnitOfWork.CategoryRepository.GetCategories(parameters);

                if (categories == null)
                {
                    return(NoContent());
                }

                var metaData = new
                {
                    categories.CurrentPage,
                    categories.PageSize,
                    categories.TotalCount,
                    categories.TotalPages,
                    categories.HasNext,
                    categories.HasPrevious,
                };

                Response.Headers.Add("X-Pagination", JsonSerializer.Serialize(metaData));

                var categoriesDto = Mapper.Map <List <CategoryDTO> >(categories);

                return(Ok(categoriesDto));
            }
            catch (Exception)
            {
                return(StatusCode(500, "An unexpected error occurred."));
            }
        }
示例#2
0
        public async Task <PagedList <Category> > GetCategories(CategoriesParameters parameters)
        {
            var query = GetAll().AsQueryable();

            return(await PagedList <Category> .ToPagedList(query, parameters.PageNumber, parameters.PageSize));
        }