public async Task <ProductReturnModel> UpdateProduct(ProductInsertModel model, long productId) { using (var transaction = await _context.Database.BeginTransactionAsync()) { try { var product = await _context.Products.FirstOrDefaultAsync(p => p.Id == productId); if (product == null) { throw new ProductNotFoundException(); } _mapper.Map(model, product); _context.Products.Update(product); await _context.SaveChangesAsync(); transaction.Commit(); return(_mapper.Map <Product, ProductReturnModel>(product)); } catch (Exception) { transaction.Rollback(); throw; } } }
public async Task <ProductReturnModel> AddProduct(ProductInsertModel model) { using (var transaction = await _context.Database.BeginTransactionAsync()) { try { var product = _mapper.Map <ProductInsertModel, Product>(model); product.AddedDate = DateTime.UtcNow; _context.Products.Add(product); await _context.SaveChangesAsync(); transaction.Commit(); return(_mapper.Map <Product, ProductReturnModel>(product)); } catch (Exception) { transaction.Rollback(); throw; } } }
public async Task <IActionResult> UpdateProduct(long id, [FromBody] ProductInsertModel model) { var result = await _productService.UpdateProduct(model, id); return(ApiResponder.RespondSuccess(result)); }
public async Task <IActionResult> InsertProduct([FromBody] ProductInsertModel model) { var result = await _productService.AddProduct(model); return(ApiResponder.RespondSuccess(result)); }