public async Task <int> CreateOrder(FinalisedOrderRepoModel order) { if (await CustomerExists(order.CustomerId) && order.OrderedItems.Count > 0 && CompletesOrders) { FinalisedOrder = order; return(order.OrderId == 0? 1 : order.OrderId); } return(0); }
public async Task <int> CreateOrder(FinalisedOrderRepoModel finalisedOrder) { if (finalisedOrder == null || finalisedOrder.OrderedItems == null || finalisedOrder.OrderedItems.Count < 1) { return(0); } foreach (OrderedItemRepoModel orderedItem in finalisedOrder.OrderedItems) { if (orderedItem == null) { return(0); } } try { finalisedOrder.OrderId = 0; var order = _mapper.Map <OrderData.Order>(finalisedOrder); _context.Add(order); foreach (OrderData.OrderedItem orderedItem in order.OrderedItems) { var product = _context.Products.FirstOrDefault(product => product.ProductId == orderedItem.ProductId); if (product != null) { int newStock = product.Quantity - orderedItem.Quantity; product.Quantity = newStock; } } await _context.SaveChangesAsync(); return(order.OrderId); } catch (DbUpdateConcurrencyException) { return(0); } }