public async Task <ActionResult <ProductToReturnDto> > GetProduct(int id) { //return await _repo.GetProductByIdAsync(id); //return await _productRepo.GetByIdAsync(id); var spec = new ProductsWithTypeAndBrandSpecification(id); // return await _productRepo.GetEntityWithSpec(spec); var product = await _productRepo.GetEntityWithSpec(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<IReadOnlyList<ProductToReturnDto>>> GetProducts( // string sort, int? brandId, int? typeId ) // public async Task<ActionResult<IReadOnlyList<ProductToReturnDto>>> GetProducts( public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts( [FromQuery] ProductSpecParams productParams) { //var products = await _repo.GetProductsAsync(); //var products = await _productRepo.ListAllAsync(); // var spec = new ProductsWithTypeAndBrandSpecification(sort,brandId,typeId); var spec = new ProductsWithTypeAndBrandSpecification(productParams); var countSpec = new ProductWithFiltersForCountSpecification(productParams); var totalItems = await _productRepo.CountAsync(countSpec); var products = await _productRepo.ListAsync(spec); //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(); var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products); return(Ok(new Pagination <ProductToReturnDto>(productParams.PageIndex, productParams.PageSize, totalItems, data))); }
public async Task <ActionResult <IReadOnlyList <ProductToReturnDto> > > GetProducts() { //implements IGeneric Class method using on this ends point // var products =await _productsRepo.ListAllAsync(); //caling Product witht type and Brand Class for pussing This type Working var spec = new ProductsWithTypeAndBrandSpecification(); var products = await _productsRepo.ListAsync(spec); //all return data are save in current context at the memory address at [products] then //slelect one product and rearange this data with productretundto class finaly retun a list // 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(products); // in the Map{first part orginal result[db part] , convartede result what we want to see Based on design class} return(Ok(_mapper .Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products))); }
public async Task <ActionResult <ProductDto> > GetProduct(int id) { var spec = new ProductsWithTypeAndBrandSpecification(id); var product = await _unitOfWork.ProductRepository.GetAsync(spec); if (product == null) { return(NotFound(new ApiResponse(404))); } return(_mapper.Map <Product, ProductDto>(product)); }
public async Task <ActionResult <ProductModel> > GetProduct(int id) { //var product = await this.repository.GetProductByIdAsync(id); var spec = new ProductsWithTypeAndBrandSpecification(id); var product = await this.productRepo.GetEntityWithSpec(spec); if (product == null) { return(new NotFoundObjectResult(new ApiResponse(404))); } return(Ok(mapper.Map <ProductModel>(product))); }
public async Task <IActionResult> GetProduct(int id) { var spec = new ProductsWithTypeAndBrandSpecification(id); var product = await _productRepo.GetEntityWithSpec(spec); if (product == null) { return(NotFound(new ApiResponse(404))); } var productToReturn = _mapper.Map <ProductToReturnDto>(product); return(Ok(productToReturn)); }
public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productParams) { var specification = new ProductsWithTypeAndBrandSpecification(productParams); var countSpec = new ProductWithFiltersForCountSpecification(productParams); var count = await _productRepo.GetCountAsync(countSpec); var products = await _productRepo.ListAllAsync(specification); var productsToReturn = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products); return(Ok(new Pagination <ProductToReturnDto>(productParams.PageIndex, productParams.PageSize, count, productsToReturn))); }
public async Task <ActionResult <Pagination <ProductDto> > > GetProducts([FromQuery] ProductParamsSpec productParams) { var spec = new ProductsWithTypeAndBrandSpecification(productParams); var countSpec = new ProductsWithFiltersForCountSpec(productParams); var products = await _unitOfWork.ProductRepository.GetListAsync(spec); var totalItems = await _unitOfWork.ProductRepository.CountAsync(countSpec); var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductDto> >(products); return(Ok(new Pagination <ProductDto> (pageIndex: productParams.PageIndex, pageSize: productParams.PageSize, count: totalItems, data: data))); }
public async Task <ActionResult <IReadOnlyList <ProductModel> > > GetProducts([FromQuery] ProductSpecParams productParams) { //var products = await this.repository.GetProductsAsync(); var spec = new ProductsWithTypeAndBrandSpecification(productParams); var countSpec = new ProductWithFiltersForCountSpecificication(productParams); var totalItems = await this.productRepo.CountAsync(countSpec); var products = await this.productRepo.ListAsync(spec); var data = mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductModel> >(products); return(Ok(new Pagination <ProductModel>(productParams.PageIndex, productParams.PageSize, totalItems, data))); }
public async Task <ActionResult <ProductToReturnDto> > GetProduct(int id) { var specification = new ProductsWithTypeAndBrandSpecification(id); var product = await _productRepo.GetEntityWithSpec(specification); var productToReturn = _mapper.Map <Product, ProductToReturnDto>(product); if (productToReturn == null) { return(NotFound()); } return(Ok(productToReturn)); }
public async Task <IActionResult> GetProducts([FromQuery] ProductSpecParams productSpecParams) { var spec = new ProductsWithTypeAndBrandSpecification(productSpecParams); var countSpec = new ProductWithFiltersForCountSpecification(productSpecParams); var count = await _productRepo.CountAsync(countSpec); var products = await _productRepo.ListAsync(spec); var productToReturnList = _mapper.Map <IReadOnlyList <ProductToReturnDto> >(products); return(Ok(new Pagination <ProductToReturnDto> { PageIndex = productSpecParams.PageIndex, PageSize = productSpecParams.pageSize, Count = count, Data = productToReturnList })); }
//Lecture 40 are goods Descriptions public async Task <ActionResult <ProductToReturnDto> > GetProduct(int id) { var spec = new ProductsWithTypeAndBrandSpecification(id); // return await _productsRepo.GetEntitiyWithSpac(spec); var product = await _productsRepo.GetEntitiyWithSpac(spec); //[peoduct] is mamory and its mapping with helping mapping calss with based on ProductToDoi class return(_mapper.Map <Product, ProductToReturnDto>(product)); // 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 // }; }