public async Task <ActionResult <ProductToReturnDto> > GetProduct(int id) { //return await _productsRepos.GetByIdAsync(id); // eski 1 var spec = new ProductWithTypesAndBrandSpecification(id); var product = await _productsRepos.GetEntityWithSpec(spec); if (product == null) { return(NotFound(new ApiResponse(404))); } // eski 2 /* 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 * }; */ return(_mapper.Map <Product, ProductToReturnDto>(product)); }
public async Task <ActionResult> GetProducts([FromQuery] ProductSpecParams productParams) { var spec = new ProductWithTypesAndBrandSpecification(productParams); var countSpec = new ProductWithFiltersCountSpecification(productParams); var totalItems = await productsRepo.CountAsync(countSpec); var products = await productsRepo.GetListWithSpec(spec); var result = mapper.Map <IReadOnlyList <ProductDTO> >(products); return(Ok(new PaginationResult <ProductDTO>(productParams.PageIndex, productParams.PageSize, totalItems, result))); }
public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productParams) { var spec = new ProductWithTypesAndBrandSpecification(productParams); var countSpec = new ProductWithFiltersForCountSpecification(productParams); var totalItems = await _productsRepos.CountAsync(countSpec); var products = await _productsRepos.ListAsync(spec); var data = _mapper.Map <List <Product>, List <ProductToReturnDto> >(products); return(Ok(new Pagination <ProductToReturnDto>(productParams.PageIndex, productParams.PageSize, totalItems, data))); }
public async Task <ActionResult> GetProduct([FromRoute] int id) { var spec = new ProductWithTypesAndBrandSpecification(id); var product = await productsRepo.GetEntityWithSpec(spec); if (product == null) { return(NotFound(new ApiResponse((int)HttpStatusCode.NotFound))); } var result = mapper.Map <ProductDTO>(product); return(Ok(result)); }