/// <summary> /// Saves the order to the database /// </summary> /// <param name="order">The checked out order to be saved</param> public void saveOrder(lib.Order order) { try { var locationDict = getLocationDict(); using var context = new StoreDBContext(_options); var dataOrder = new DataAccess.Order(); dataOrder.CustomerId = order.CustomerId; dataOrder.OrderTime = order.Time; dataOrder.LocationId = context.Locations.Where(l => l.Name == order.Location).Select(l => l.LocationId).FirstOrDefault(); context.Add(dataOrder); context.SaveChanges(); foreach (var p in order.Products) { var dataOrderLine = new DataAccess.OrderLine(); dataOrderLine.OrderId = dataOrder.OrderId; dataOrderLine.ProductId = p.ProductId; dataOrderLine.Amount = p.Amount; context.Add(dataOrderLine); } context.SaveChanges(); } catch (Exception) { Console.WriteLine("Error creating new orders"); } }
/// <summary> /// Saves the order to the database /// </summary> /// <param name="order">The checked out order to be saved</param> public void saveOrder(lib.Order order) { try { var dataOrder = new DataAccess.Order(); var dataCustomer = _context.Customers.Where(c => c.CustomerId == order.CustomerId).FirstOrDefault(); dataOrder.CustomerId = order.CustomerId; dataOrder.OrderTime = DateTime.Parse(order.Time); dataOrder.LocationId = _context.Locations.Where(l => l.Name == order.Location).Select(l => l.LocationId).FirstOrDefault(); _context.Add(dataOrder); _context.SaveChanges(); foreach (var p in order.Products) { var dataOrderLine = new DataAccess.OrderLine(); dataOrderLine.OrderId = dataOrder.OrderId; dataOrderLine.ProductId = p.ProductId; dataOrderLine.Amount = p.Amount; dataCustomer.Balance -= p.Amount * p.Price; _context.Add(dataOrderLine); } _context.Update(dataCustomer); _context.SaveChanges(); } catch (Exception) { Console.WriteLine("Error creating new orders"); } }