public async Task <ActionResult <ProductToReturnDto> > GetProduct(int id) { var spec = new ProductWithBrandAndTypeSpecification(id); var product = await _productsRepo.GetEntityWithSpec(spec); return(_mapper.Map <Product, ProductToReturnDto>(product)); }
public async Task <ActionResult <ProductDTOReturn> > GetProduct(int id) { var spec = new ProductWithBrandAndTypeSpecification(id); var product = await _productrepo.GetEntityWithSpec(spec); if (product == null) { return(NotFound(new ApiResponse(404))); } return(_mapper.Map <Product, ProductDTOReturn>(product)); // return new ProductDTOReturn { // Id = product.Id, // Name= product.Name, // Description=product.Description, // Price = product.Price, // PictureUrl= product.PictureUrl, // ProductBrand= product.ProductBrand.Name, // ProductType= product.ProductType.Name // }; // return await _productrepo.GetIdByAsync(id); }
GetProducts([FromQuery] ProductSpecParams productParams) { // var products = await _productrepo.GetListAsync(); var spec = new ProductWithBrandAndTypeSpecification(productParams); var countSpec = new ProductForCountPagination(productParams); var products = await _productrepo.ListAsync(spec); var count = await _productrepo.CountAsync(countSpec); var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductDTOReturn> >(products); // return products.Select( product => new ProductDTOReturn(){ // Id = product.Id, // Name= product.Name, // Description=product.Description, // Price = product.Price, // PictureUrl= product.PictureUrl, // ProductBrand= product.ProductBrand.Name, // ProductType= product.ProductType.Name // }).ToList() ; return(Ok(new Pagination <ProductDTOReturn> { PageIndex = productParams.PageIndex , PageSize = productParams.PageSize , Count = count , Data = data })); // return Ok(products); }
public async Task <ActionResult <ProductToReturnDto> > GetProduct(int id) { var spec = new ProductWithBrandAndTypeSpecification(id); var product = await _productRepo.GetEntityWithSpec(spec); 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 spec = new ProductWithBrandAndTypeSpecification(productparams); var countspec = new ProductWithFilterForCountSpecification(productparams); var totalItems = await _productsRepo.CountAsync(countspec); var products = await _productsRepo.ListAsync(spec); var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products); return(Ok(new Pagination <ProductToReturnDto>(productparams.PageIndex, productparams.PageSize, totalItems, data))); }
public async Task <ActionResult <ProductToReturnDto> > GetProduct(int id) { //id--> specification passé à BaseSpecifiction avec base(x => x.Id == id) //dans ProductWithBrandAndTypeSpecification où on utilise la méthode // AddInclude de BaseSpecification méthode de délégué //de public List<Expression<Func<T, object>>> Includes{get;} //BaseSpecification<T> implémentant ISpecification<T> var spec = new ProductWithBrandAndTypeSpecification(id); var product = await _productRepo.GetEntityWithSpec(spec); if (product == null) { return(NotFound(new ApiResponse(404))); } return(_mapper.Map <Product, ProductToReturnDto>(product)); }
public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts( [FromQuery] ProductSpecParams specParams) { // pour ajouter les spécifications marque/type var spec = new ProductWithBrandAndTypeSpecification(specParams); var Countspec = new ProductFilterForCount(specParams); // pour récupérer la quantité réelle d'items var totalItem = await _productRepo.CountAsync(Countspec); //Countspec // on récupère les specifications var products = await _productRepo.ListAsyncWithSpec(spec); // var productsDto = _mapper.Map<IEnumerable<>> var datas = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products); return(Ok(new Pagination <ProductToReturnDto>(specParams.PageIndex, specParams.ItemsPerPage, totalItem, datas))); }