public IActionResult Post(CustomerViewModel model, string button) { model = TempData.Get <CustomerViewModel>("Customer"); if (button == "cancel") { return(RedirectToAction("Home", "Customer", model)); } else if (button == "finish") { var store = _context.GetStoreByName(model.Order.Store); var user = _context.GetUserByName(model.Name); var order = new Order(); foreach (var pizza in model.Order.Pizzas) { var madePizza = new Pizza(); madePizza.Name = "custom"; madePizza.Crust = _context.GetAPizzaPartByName <Crust>(pizza.Crust.Name); madePizza.Size = _context.GetAPizzaPartByName <Size>(pizza.Size.Name); madePizza.Toppings = new List <Topping>(); foreach (var topping in pizza.Toppings) { madePizza.Toppings.Add(APizzaPartFactory.MakeTopping(topping.Name)); } order.AddPizza(madePizza); } store.Orders.Add(order); user.Orders.Add(order); _context.SaveChanges(); return(View("OrderPlaced", model)); } return(View("home", model)); }
private static void AddToppings(Pizza pizza) { List <Topping> toppings = APizzaPartFactory.GetToppings(); Console.WriteLine("Current toppings: "); foreach (var topping in pizza.Toppings) { Console.Write(topping + " "); } Console.WriteLine(); //Just to start a new line. while (pizza.Toppings.Count < 5) { for (var index = 0; index < toppings.Count(); index++) { Console.WriteLine($"{index}: {toppings[index]} ${toppings[index].Price}"); } Console.WriteLine("Input a number for a topping or any other number to quit."); bool validInput = int.TryParse(Console.ReadLine(), out int input); if (validInput) { if (input > 0 && input < toppings.Count()) { var selectedTopping = APizzaPartFactory.MakeTopping(toppings[input].Name); bool added = pizza.AddTopping(selectedTopping); if (added) { Console.WriteLine($"Added {selectedTopping}"); if (pizza.Toppings.Count() >= 5) { Console.WriteLine("You've reached your limit on toppings"); } } else { Console.WriteLine("Unable to add topping."); } } else { Console.WriteLine("Thank you for selecting your toppings."); return; } } else { Console.WriteLine("Invalid input, try again."); } } }
public void SetToppings() { if (Toppings == null || Toppings.Count == 0) { Toppings = new List <SelectTopping>(); foreach (var topping in APizzaPartFactory.GetToppings()) { Toppings.Add(new SelectTopping() { Selected = false, Topping = topping }); } } }
private void Test_PizzaGetTotalCost() { var pizza = new Pizza(); var topping1 = APizzaPartFactory.MakeTopping("cheese"); var topping2 = APizzaPartFactory.MakeTopping("sauce"); var crust = APizzaPartFactory.MakeCrust("regular"); var size = APizzaPartFactory.MakeSize("medium"); var amount = 1d + topping1.Price + topping2.Price + crust.Price + size.Price; pizza.AddTopping(topping1); pizza.AddTopping(topping2); pizza.Crust = crust; pizza.Size = size; Assert.True(pizza.GetTotalCost() == amount); }
private static void Test_OrderGetTotalAmount() { var order = new Order(); var pizza = new Pizza(); var topping1 = APizzaPartFactory.MakeTopping("cheese"); var topping2 = APizzaPartFactory.MakeTopping("sauce"); pizza.Crust = APizzaPartFactory.MakeCrust("regular"); pizza.Size = APizzaPartFactory.MakeSize("large"); pizza.AddTopping(topping1); pizza.AddTopping(topping2); order.AddPizza(pizza); var total = 1d + pizza.Crust.Price + pizza.Size.Price + topping1.Price + topping2.Price; Assert.True(order.GetTotalAmount() == total); }
private void Test_PizzaAddTopping() { var pizza = new Pizza(); var topping1 = APizzaPartFactory.MakeTopping("cheese"); var topping2 = APizzaPartFactory.MakeTopping("sauce"); var topping3 = APizzaPartFactory.MakeTopping("pepperoni"); var topping4 = APizzaPartFactory.MakeTopping("pineapple"); var topping5 = APizzaPartFactory.MakeTopping("olive"); var topping6 = APizzaPartFactory.MakeTopping("sausage"); Assert.NotNull(pizza.Toppings); Assert.True(pizza.AddTopping(topping1)); Assert.True(pizza.AddTopping(topping2)); Assert.True(pizza.AddTopping(topping3)); Assert.True(pizza.AddTopping(topping4)); Assert.True(pizza.AddTopping(topping5)); Assert.False(pizza.AddTopping(topping6)); }
private void Test_OrderAddPizza() { var order1 = new Order(); var order2 = new Order(); var pizza = new Pizza(); var pizza2 = new Pizza(); pizza2.Crust = APizzaPartFactory.MakeCrust("regular"); pizza2.Size = APizzaPartFactory.MakeSize("large"); Assert.True(pizza2.GetTotalCost() == 5d); Assert.False(order1.AddPizza(null)); for (int amount = 0; amount < 50; amount++) { Assert.True(order1.AddPizza(pizza)); } Assert.False(order1.AddPizza(pizza)); for (int amount = 0; amount < 50; amount++) { Assert.True(order2.AddPizza(pizza2)); } Assert.False(order2.AddPizza(pizza2)); }