public async Task <IActionResult> GetProductsByPageAsync([FromQuery] PaginationQuery paginationQuery, [FromQuery] FilterProductParams filterParams) { try { PagedList <Product> productsInDb = await _unitOfWork.Products.GetPagedProductsWthCategoriesByFiltersAsync(paginationQuery, filterParams); if (productsInDb == null) { return(NotFound()); } var productsDtoPage = PagedListMapper <Product, ProductDto> .Map(productsInDb, _mapper); var metadata = new { productsDtoPage.TotalCount, productsDtoPage.PageSize, productsDtoPage.CurrentPage, productsDtoPage.TotalPages, productsDtoPage.HasNext, productsDtoPage.HasPrevious }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); return(Ok(productsDtoPage)); } catch (Exception e) { return(BadRequest(e.Message)); } }
protected override void Arrange() { PagedListMapper.Register(); Mapper.CreateMap <SourceClass, DestinationClass>(); _sources = SourceClass.Builder(20); }
protected override void Arrange() { _countOfDefaultMappers = MapperRegistry.Mappers.Count(); PagedListMapper.Register(); }