public async Task <ActionResult <ProductToReturnDto> > getProduct(int id) { var spec = new ProductsWithTypesAndBrandsSpecifications(id); var product = await _productsRepo.GetEntityWithSpec(spec); return(_mapper.Map <Product, ProductToReturnDto>(product)); }
public async Task <ActionResult <ProductToReturnDto> > GetProduct(int id) { //return await productsRepo.GetByIdAsync(id); var spec = new ProductsWithTypesAndBrandsSpecifications(id); var product = await productsRepo.GetEntityWithSpecification(spec); /* return new ProductToReturnDto * { * Id = product.Id, * Name = product.Name, * Description = product.Description, * PictureUrl = product.PictureUrl, * Price = product.Price, * ProductBrand = product.ProductBrand.Name, * ProductType = product.ProductType.Name * * }; */ if (product == null) { return(NotFound(new ApiResponse(404))); } return(mapper.Map <Product, ProductToReturnDto>(product)); }
public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productParams) { //var products = await repo.GetProductsAsync(); var spec = new ProductsWithTypesAndBrandsSpecifications(productParams); var countSpec = new ProductWithFiltersForCountSpecification(productParams); var totalItems = await productsRepo.CountAsync(countSpec); //var products = await productsRepo.ListAllAsync(); var products = await productsRepo.ListAsync(spec); var data = mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products); //return Ok(products); /* return products.Select(product => new ProductToReturnDto{ * * * Id = product.Id, * Name = product.Name, * Description = product.Description, * PictureUrl = product.PictureUrl, * Price = product.Price, * ProductBrand = product.ProductBrand.Name, * ProductType = product.ProductType.Name * * }).ToList(); */ return(Ok(new Pagination <ProductToReturnDto>(productParams.PageIndex, productParams.PageSize, totalItems, data))); }
public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productSpecParams) { var spec = new ProductsWithTypesAndBrandsSpecifications(productSpecParams); var products = await _productRepo.ListAsync(spec); var countSpec = new ProductWithFiltersForCountSpecification(productSpecParams); var count = await _productRepo.CountAsync(countSpec); var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products); return(Ok(new Pagination <ProductToReturnDto>(productSpecParams.PageIndex, productSpecParams.PageSize, count, data))); //return products.Select(products => new ProductToReturnDto //{ // Id = products.Id, //Name = products.Name, // Description = products.Description, //PictureUrl = products.PictureUrl, // Price = products.Price, // ProductBrand = products.ProductBrand.Name, // ProductType = products.ProductType.Name //} //).ToList(); }
public async Task <ActionResult <IReadOnlyList <ProductToReturnDto> > > GetProducts() { var spec = new ProductsWithTypesAndBrandsSpecifications(); var products = await _productRepo.ListAsync(spec); return(Ok(_mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products))); }
public async Task <ActionResult <ProductsToReturnDto> > GetProduct(int id) { var spec = new ProductsWithTypesAndBrandsSpecifications(id); var product = await _productsRepo.GetEntityWithSpec(spec); if (product == null) { return(NotFound(new ApiResponse(404))); } return(_mapper.Map <Product, ProductsToReturnDto>(product)); }
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 <ProductToReturnDto> > GetProduct(int id) { //List<Expression<Func<Product, object>>> Includes = new List<Expression<Func<Product, object>>>(); ; // Expression<Func<Product, bool>> Criteria; // Includes.Add(x => x.ProductBrand); // Includes.Add(x => x.ProductType); // Criteria = (x => x.ProductTypeId == id); var spec = new ProductsWithTypesAndBrandsSpecifications(id); var product = await _productRepo.GetEntityWithSpec(spec); if (product == null) { return(NotFound(new ApiResponse(404))); } return(_mapper.Map <Product, ProductToReturnDto>(product)); }