public async Task <ActionResult <IReadOnlyList <Pagination> > > GetProducts([FromQuery] ProductSpecParams productParams) { var spec = new ProductsWithTypesAndBrandsSpecification(productParams); var countSpec = new ProductWithFiltersForCountSpecifications(productParams); var totalItems = await _productRepo.CountAsync(countSpec); //var products = await _productRepo.ListAllAsync(); var products = await _productRepo.ListAsync(spec); var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDtos> >(products); return(Ok(new Pagination <ProductToReturnDtos>(productParams.PageSize, productParams.PageIndex, totalItems, data))); // return products.Select(product => new ProductToReturnDtos // { // Id = product.Id, // Name = product.Name, // Description = product.Description, // Price = product.Price, // PictureUrl = product.PictureUrl, // ProductBrand = product.ProductBrand.Name, // ProductType = product.ProductType.Name // }).ToList(); }
public async Task <ActionResult <Pagination <ProductsToReturnDto> > > GetProducts([FromQuery] ProductSpecParams pruductParams) { var spec = new ProductsWithTypesAndBrandsSpecifications(pruductParams); var countSpec = new ProductWithFiltersForCountSpecifications(pruductParams); var products = await _productsRepo.ListAsync(spec); var totalItems = await _productsRepo.CountAsync(countSpec); var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductsToReturnDto> >(products); return(Ok(new Pagination <ProductsToReturnDto>(pruductParams.PageIndex, pruductParams.PageSize, totalItems, data))); }
public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productParams) { var spec = new ProductsWithBrandsAndTypesSpecification(productParams); var countSpec = new ProductWithFiltersForCountSpecifications(productParams); var totalItems = await _repoProduct.CountAsync(countSpec); var mappedData = _mapper.Map <IReadOnlyList <ProductToReturnDto> >(await _repoProduct.GetAllAsync(spec)); var returnValue = new Pagination <ProductToReturnDto>(productParams.PageIndex, productParams.PageSize, totalItems, mappedData); return(Ok(returnValue)); }