public Guid CreateOrder(Order newOrder, IEnumerable <OrderPosition> orderPositions) { var client = _context.Clients.First(x => x.Id == newOrder.OrderingClient.Id); _context.DeliveryInfos.Add(newOrder.DeliveryInfo); _context.PaymentInfos.Add(newOrder.PaymentInfo); var order = new Order { Id = Guid.NewGuid(), CreationDate = DateTime.Now, UpdateDate = DateTime.Now, OrderState = OrderState.Created, OrderingClient = client, DeliveryInfo = newOrder.DeliveryInfo, PaymentInfo = newOrder.PaymentInfo, CommentToOperator = newOrder.CommentToOperator }; order.OrderNumber = GetNextOderNumber(); foreach (var orderPosition in orderPositions) { orderPosition.Order = order; var pizza = _context.Pizzas.First(x => x.Id == orderPosition.Pizza.Id); orderPosition.Pizza = pizza; _context.OrderPositions.Add(orderPosition); } _context.Orders.Add(order); _context.SaveChanges(); return(order.Id); }
public void AddBonusToClient(Guid clientId, Collection <OrderPosition> orderPositions) { var client = GetClientById(clientId); decimal percent = 0.05m; decimal bonuses = orderPositions.Sum(x => x.Pizza.Cost * x.Count) * percent; client.BonusCount += bonuses; _context.SaveChanges(); }
public void RegisterPerson(Person person, Account account) { _context.Persons.Add(person); _context.Accounts.Add(account); _context.Clients.Add(new Client { Person = person, Account = account, BonusCount = 0 }); _context.SaveChanges(); }
public void UpdatePizza(Pizza newPizza) { if (_context.Pizzas.Where(x => x.Id.Equals(newPizza.Id)).Count() > 0) { _context.Update(newPizza); } else { _context.Add(newPizza); } try { _context.SaveChanges(); } catch (Exception e) { Console.WriteLine(e); } }