private async Task <decimal> UpdateInventoryForOrderAndReturnOrderTotalAsync(CustomerOrderFormViewModel model, int orderId) { decimal orderTotal = 0m; foreach (var item in model.OrderInventory) { var inventoryItem = await _dbContext.Inventory.SingleOrDefaultAsync(i => i.Id == item.InventoryId); var enoughInventoryAvailable = inventoryItem.AmountAvailable >= item.Quantity; if (enoughInventoryAvailable) { item.OrderId = orderId; await _orderRepository.AddOrderInventoryAsync(item); orderTotal += (inventoryItem.PricePerUnit * item.Quantity); var newAvailableAmount = inventoryItem.AmountAvailable - item.Quantity; inventoryItem.AmountAvailable = newAvailableAmount; } } return(orderTotal); }