public async Task <ActionResult <ProductsToReturn> > GetProduct(int id) { var spec = new ProductsWithTypeandBrandsSpecification(id); var product = await _ProductRepo.GetEntityWithSpec(spec); if (product == null) { return(NotFound(new ApiResponse(404))); } return(mapper.Map <Product, ProductsToReturn>(product)); }
public async Task <ActionResult <Pagination <ProductsToReturn> > > GetProducts( [FromQuery] ProductSpecParam productParams) { var spec = new ProductsWithTypeandBrandsSpecification(productParams); var countSpec = new ProductWithFiltersForCountSpecification(productParams); var totalItems = await _ProductRepo.CountAsync(countSpec); var products = await _ProductRepo.ListAsync(spec); var data = mapper .Map <IReadOnlyList <Product>, IReadOnlyList <ProductsToReturn> >(products); return(Ok(new Pagination <ProductsToReturn>(productParams.pageIndex, productParams.Pagesize, totalItems, data))); }