public JsonResult CompleteSale(SaleViewModel model) { bool success = true; BeSpokeContext context = new BeSpokeContext(); using (var dbContextTransaction = context.Database.BeginTransaction()) { try { // Add Customer var custRepo = new CustomerRepository(); custRepo.AddOrUpdateCustomer(model.Customer, model.SaleDate); //Create Sale Sale sale = new Sale(); sale.CustomerId = model.Customer.CustomerId; sale.ProductId = model.Product.ProductId; sale.SalesPersonId = model.SalesPersonId; sale.Date = model.SaleDate; var salesRepo = new SalesRepository(); salesRepo.CreateSale(sale); //Update Product Count var productRepo = new ProductRepository(); productRepo.UpdateQtyOnHand(model.Product.ProductId); dbContextTransaction.Commit(); } catch (Exception e) { success = false; dbContextTransaction.Rollback(); } } return(new JsonResult { Data = success }); }