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); }
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 }