public async Task <IActionResult> Post(ProductToCreateDto productToCreate) { var product = this._mapper.Map <Product>(productToCreate); long id = await this._productsRepository.InsertAsync(product); return(Created(id.ToString(), product)); }
public async Task <ActionResult> CreateProduct([FromBody] ProductToCreateDto productToCreate) { bool isSuccess = false; if (ModelState.IsValid) { isSuccess = await _productService.AddProduct(productToCreate); } if (!isSuccess) { return(BadRequest()); } return(NoContent()); }
public async Task <IActionResult> CreateProduct([FromBody] ProductToCreateDto productToCreateDto) { var productToCreate = _mapper.Map <Product>(productToCreateDto); if (await _repository.EntityExists(productToCreate)) { return(BadRequest("Product With Same Name and Vendor Exists")); } var category = await _repository.GetCategory(productToCreate.CategoryId); if (category == null) { return(BadRequest("Invalid Category Id")); } var productCode = await _repository.GenerateProductCode(productToCreateDto.CategoryId); if (productToCreateDto.Price == 0) { return(BadRequest("Invalid Price")); } var merchant = await _repository.GetMerchant(productToCreateDto.MerchantId); if (merchant == null) { return(BadRequest("The Merchant for whom this product is to be created does not exist")); } var brand = await _repository.GetBrand(productToCreateDto.BrandId); if (brand == null) { return(BadRequest("The Brand for whom this product is to be created does not exist")); } var store = await _repository.GetStore(productToCreateDto.StoreId); if (store == null) { return(BadRequest("The Store for which this product is to be stored does not exist")); } productToCreate.Code = productCode; store.Products.Add(productToCreate); if (await _repository.SaveAllChangesAsync()) { var productToReturn = _mapper.Map <ProductToReturnDto>(productToCreate); return(CreatedAtRoute("GetProduct", new { code = productToReturn.Code }, productToReturn)); } return(BadRequest("An Error occurred while creating product")); }
public async Task <IActionResult> RegisterProduct(ProductToCreateDto productToCreateDto) { // var company = await _repo.GetCompany(productToCreateDto.CompanyId); // if(company == null) { // return BadRequest("Can't Find Company"); // } if (await _repo.ToRegisterProductExist(productToCreateDto.ProductName, productToCreateDto.CompanyId)) { return(BadRequest("Name Already Exist")); } var productToCreate = _mapper.Map <Product>(productToCreateDto); var productFromRepo = await _repo.RegisterProduct(productToCreate); var productToReturn = _mapper.Map <ProductToReturnDto>(productFromRepo); return(Ok(productToReturn)); }
public async Task <ActionResult <Product> > CreateProduct(ProductToCreateDto productToCreate) { var product = _mapper.Map <ProductToCreateDto, Product>(productToCreate); product.PictureUrl = "images/products/placeholder.png"; _unitOfWork.Repository <Product>().Add(product); var result = await _unitOfWork.Complete(); if (result <= 0) { return(BadRequest(new ApiResponse(400, "Problem creating product"))); } return(Ok(product)); }
public async Task <ActionResult <Product> > UpdateProduct(int id, ProductToCreateDto productToUpdate) { var product = await _unitOfWork.Repository <Product>().GetByIdAsync(id); productToUpdate.PictureUrl = product.PictureUrl; _mapper.Map(productToUpdate, product); _unitOfWork.Repository <Product>().Update(product); var result = await _unitOfWork.Complete(); if (result <= 0) { return(BadRequest(new ApiResponse(400, "Problem updating product"))); } return(Ok(product)); }
public async Task <ActionResult <ProductDto> > CreateProduct(ProductToCreateDto createDto) { if (_repository.IsExist(x => x.Name.ToLower() == createDto.Name.ToLower())) { return(BadRequest(new ApiResponse(400, $"{createDto.Name} already exists"))); } var product = _mapper.Map <Product>(createDto); product.Id = Guid.NewGuid().ToString(); product.CreatedBy = HttpContext.User.RetrieveEmailFromPrincipal(); await _repository.Add(product); if (await _unitOfWork.Complete() <= 0) { return(BadRequest(new ApiResponse(400, $"An error occured while trying to insert"))); } return(CreatedAtRoute("GetProduct", new { productId = product.Id }, _mapper.Map <ProductDto>(product))); }
public async Task <IActionResult> Put(string code, [FromBody] ProductToCreateDto productToUpdateDto) { if (code != productToUpdateDto.Code) { return(BadRequest(" The id of the product to update does not corresppnd woth that on the route of the request")); } var productFromRepo = await _repository.GetProduct(productToUpdateDto.Code); if (productFromRepo == null) { return(NotFound()); } var productToUpdate = _mapper.Map <ProductToCreateDto, Product>(productToUpdateDto, productFromRepo); _repository.Update(productToUpdate); if (await _repository.SaveAllChangesAsync()) { var productToReturn = _mapper.Map <ProductToReturnDto>(productToUpdate); return(NoContent()); } return(BadRequest($"An Error occurred while trying to update product with code {productToUpdate.Code}")); }