private IEnumerable <OrderDisplayViewModel> GetOrders() { var orders = new List <OrderDisplayViewModel>(); foreach (var o in _context.Orders.Where(o => o.Processed == false)) { var viewModel = new OrderDisplayViewModel { Order = new Order { Id = o.Id, Customer = _context.Customers.FirstOrDefault(c => o.CustomerId == c.Id), Pizza = _context.Pizzas.FirstOrDefault(p => o.PizzaId == p.Id) } }; viewModel.PizzaSize = _context.PizzaAttributes.First(pa => pa.Id == viewModel.Order.Pizza.Size).Value; viewModel.PizzaCrust = _context.PizzaAttributes.First(pa => pa.Id == viewModel.Order.Pizza.Crust).Value; if (viewModel.Order.Pizza.Topping != null) { foreach (var topping in viewModel.Order.Pizza.Topping.Split(',')) { viewModel.PizzaTopping += ", " + _context.PizzaAttributes.First(pa => pa.Id.ToString() == topping).Value; } viewModel.PizzaTopping = viewModel.PizzaTopping.Substring(2, viewModel.PizzaTopping.Length - 2); } orders.Add(viewModel); } return(orders); }
public ActionResult Save() { var customer = TempData["customer"] as Customer; var pizza = _context.Pizzas.OrderByDescending(p => p.Id).First(); var amount = (double)TempData["amount"]; var order = new Order { //CustomerId = customer.Id, Customer = customer, PizzaId = pizza.Id, Amount = amount }; _context.Orders.Add(order); _context.SaveChanges(); var pizzaToppings = string.Empty; pizzaToppings += string.Join(",", _context.PizzaAttributes.Where(pa => _context.PizzaToppings.Where(pt => pt.Pizza == pizza.Id).Select(x => x.Topping).Contains(pa.Id)).Select(y => y.Value)); //foreach (var pizzaTopping in _context.PizzaToppings.Where(pt => pt.Pizza == pizza.Id)) //{ // pizzaToppings += string.Join(",", _context.PizzaAttributes.FirstOrDefault(pa => pa.Id == pizzaTopping.Topping).Value); //} var orderDisplay = new OrderDisplayViewModel { Order = order, PizzaSize = _context.PizzaAttributes.FirstOrDefault(pa => pa.Id == pizza.Size).Value, PizzaCrust = _context.PizzaAttributes.FirstOrDefault(pa => pa.Id == pizza.Crust).Value, PizzaTopping = pizzaToppings }; return(View(orderDisplay)); }