Exemplo n.º 1
0
        public List <orderDomain.Order> ReadAllPizzaOrders()
        {
            // var domainUserPizzaList = new List<domain.PizzaModel.Pizza>();
            var domainUserOrdersList = new List <orderDomain.Order>();

            var query         = _db.Order.Include(u => u.User);
            var extendedQuery = query.Include(o => o.OrderPizza).ThenInclude(p => p.Pizza).ThenInclude(c => c.Crust)
                                .Include(o => o.OrderPizza).ThenInclude(p => p.Pizza).ThenInclude(s => s.Size)
                                .Include(o => o.OrderPizza).ThenInclude(p => p.Pizza).ThenInclude(pt => pt.PizzaTopping).ThenInclude(t => t.Topping);

            foreach (var q in extendedQuery)
            {
                var order = new orderDomain.Order()
                {
                    TimeOrdered = q.DateTime
                };
                foreach (var ran in q.OrderPizza)
                {
                    var toppings = new List <orderDomain.PizzaModel.Topping>();
                    foreach (var pt in ran.Pizza.PizzaTopping)
                    {
                        var topping = new orderDomain.PizzaModel.Topping()
                        {
                            Name = pt.Topping.Name, Price = (double)pt.Topping.Price
                        };
                        toppings.Add(topping);
                    }
                    order.Pizzas.Add(new orderDomain.PizzaModel.Pizza()
                    {
                        Name = new orderDomain.PizzaModel.Name()
                        {
                            PizzaName = ran.Pizza.Name
                        },
                        Crust = new orderDomain.PizzaModel.Crust()
                        {
                            PizzaCrust = ran.Pizza.Crust.Name, CrustPrice = (double)ran.Pizza.Crust.Price
                        },
                        Size = new orderDomain.PizzaModel.Size()
                        {
                            PizzaSize = ran.Pizza.Size.Name, SizePrice = (double)ran.Pizza.Size.Price
                        },
                        PizzaPrice = ran.Pizza.Price,
                        Toppings   = toppings
                    });
                }
                domainUserOrdersList.Add(order);
            }
            return(domainUserOrdersList);
        }
Exemplo n.º 2
0
        public List <domain.Pizza> ReadAll()
        {
            // eager loading
            // lazy loading
            var domainPizzaList = new List <domain.Pizza>();

            var pizzasWithEverything = _db.Pizza.Include(c => c.Crust).Include(s => s.Size).Include(pt => pt.PizzaTopping).ThenInclude(t => t.Topping);

            foreach (var item in pizzasWithEverything.ToList())
            {
                var toppings = new List <domain.Topping>();
                foreach (var pt in item.PizzaTopping)
                {
                    var topping = new domain.Topping()
                    {
                        Name = pt.Topping.Name, Price = (double)pt.Topping.Price
                    };
                    toppings.Add(topping);
                }
                domainPizzaList.Add(new domain.Pizza()
                {
                    Name = new domain.Name()
                    {
                        PizzaName = item.Name
                    },
                    Crust = new domain.Crust()
                    {
                        PizzaCrust = item.Crust.Name, CrustPrice = (double)item.Crust.Price
                    },
                    Size = new domain.Size()
                    {
                        PizzaSize = item.Size.Name, SizePrice = (double)item.Size.Price
                    },
                    PizzaPrice = item.Price,
                    Toppings   = toppings
                });
            }
            ;
            return(domainPizzaList);
        }
 public void RemoveTopping(Topping topping)
 {
     _toppings.Remove(topping);
     ComputePizzaPrice(); // TODO delete computation from here
 }
 public void AddPizzaTopping(Topping topping)
 {
     _toppings.Add(topping);
     ComputePizzaPrice(); // TODO delete computation from here
 }