public async Task <ActionResult <Product> > GetProductById(int id) { var spec = new GetProductsWithBrandsAndTypes(id); var product = await _productRepo.GetEntityWithSpec(spec); var productToReturn = _mapper.Map <Product, ProductToReturnDto>(product); return(Ok(productToReturn)); }
public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productSpecParams) { var spec = new GetProductsWithBrandsAndTypes(productSpecParams); var countSpec = new ProductWithFilterForCountSpec(productSpecParams); var products = await _productRepo.ListAsync(spec); var totalItems = await _productRepo.CountAsync(countSpec); var productsToReturn = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products); return(Ok(new Pagination <ProductToReturnDto>( productSpecParams.PageIndex, productSpecParams.PageSize, totalItems, productsToReturn ))); }