public async Task <ServiceResponse <ProductDTO_ToReturn> > EditProduct(ProductDTO_ToAdd input, int id) { var errMsg = ""; //validate productgroup var productGroupExsist = await GetActiveProductGroupById(input.ProductGroupId); if (productGroupExsist is null) { errMsg = $"product group id: {input.ProductGroupId} not found"; _logger.LogError(errMsg); return(ResponseResult.Failure <ProductDTO_ToReturn>(errMsg)); } //validate exsist product var productToUpdate = await GetActiveProductById(id); if (productToUpdate is null) { errMsg = $"product id: {id} not found"; return(ResponseResult.Failure <ProductDTO_ToReturn>(errMsg)); } //update product try { productToUpdate.Name = input.Name; productToUpdate.Price = input.Price; productToUpdate.ImageUrl = input.ImageUrl; productToUpdate.ProductGroupId = input.ProductGroupId; productToUpdate.UpdatedBy = GetUsername(); productToUpdate.UpdatedDate = Now(); _context.Update(productToUpdate); await _context.SaveChangesAsync(); var dto = _mapper.Map <ProductDTO_ToReturn>(productToUpdate); return(ResponseResult.Success <ProductDTO_ToReturn>(dto)); } catch (System.Exception ex) { _logger.LogError(ex.Message); return(ResponseResult.Failure <ProductDTO_ToReturn>(ex.Message)); } }
public async Task <ServiceResponse <ProductDTO_ToReturn> > AddProduct(ProductDTO_ToAdd input) { var errMsg = ""; //validate productgroup var productGroupExsist = await GetActiveProductGroupById(input.ProductGroupId); if (productGroupExsist is null) { errMsg = $"product group id: {input.ProductGroupId} not found"; _logger.LogError(errMsg); return(ResponseResult.Failure <ProductDTO_ToReturn>(errMsg)); } try { var productToAdd = new Product(); productToAdd.Name = input.Name; productToAdd.ProductGroupId = input.ProductGroupId; productToAdd.Price = input.Price; productToAdd.Stock = input.Stock; productToAdd.ImageUrl = ""; productToAdd.IsActive = true; productToAdd.CreatedBy = GetUsername(); productToAdd.CreatedDate = Now(); productToAdd.UpdatedBy = GetUsername(); productToAdd.UpdatedDate = Now(); await _context.Products.AddAsync(productToAdd); await _context.SaveChangesAsync(); var dto = _mapper.Map <ProductDTO_ToReturn>(productToAdd); return(ResponseResult.Success <ProductDTO_ToReturn>(dto)); } catch (System.Exception ex) { _logger.LogError(ex.Message); return(ResponseResult.Failure <ProductDTO_ToReturn>(ex.Message)); } }
public async Task <IActionResult> EditProduct(ProductDTO_ToAdd input, int id) { return(Ok(await _service.EditProduct(input, id))); }
public async Task <IActionResult> AddProduct(ProductDTO_ToAdd input) { return(Ok(await _service.AddProduct(input))); }