예제 #1
0
        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);
        }
예제 #2
0
        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();
        }
예제 #3
0
 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();
 }
예제 #4
0
 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);
     }
 }