private static IPizza PizzaToppingsMenu(IPizza newPizza, int toppingsCount) { while (toppingsCount <= 5) { System.Console.WriteLine("Toppings Option: "); System.Console.WriteLine("1- Add Toppings"); System.Console.WriteLine("2- No More Toppings"); System.Console.Write("Toppings Option: "); int toppingOpt = Convert.ToInt32(Console.ReadLine()); switch (toppingOpt) { case 1: System.Console.WriteLine("Choose one of the following toppings: "); DisplayIngredients(PizzaToppingsDataRetriever.GetInstance().PizzaToppingsList); System.Console.Write("Topping Choice: "); int toppingChoice = Convert.ToInt32(Console.ReadLine()); newPizza = new PizzaToppingDecorator (newPizza, PizzaToppingsDataRetriever.GetInstance().PizzaToppingsList [toppingChoice - 1]); toppingsCount += 1; break; case 2: default: return(newPizza); } } return(newPizza); }
public IActionResult AddCustomPizza(string pizzaSizeCode, string pizzaCrustCode, List <string> pizzaToppingCodes) { byte [] orderArr; HttpContext.Session.TryGetValue("newOrder", out orderArr); PizzaOrder curOrder = PizzaOrder.ByteArrayToObject(orderArr); IPizza newPizza = new PlainPizza(); newPizza = new PizzaSizeDecorator(newPizza, PizzaSizeDataRetriever .GetInstance().PizzaSizeList[Convert.ToInt32(pizzaSizeCode)]); newPizza = new PizzaCrustDecorator(newPizza, PizzaCrustDataRetriever .GetInstance().PizzaCrustList[Convert.ToInt32(pizzaCrustCode)]); foreach (var item in pizzaToppingCodes) { newPizza = new PizzaToppingDecorator(newPizza, PizzaToppingsDataRetriever .GetInstance().PizzaToppingsList[Convert.ToInt32(item)]); } bool pizzaAdded = curOrder.AddPizzaToOrder(newPizza); HttpContext.Session.Set("newOrder", curOrder.ObjectToByteArray()); if (pizzaAdded) { ViewData["msg"] = $"Pizza Added. Your order has: {curOrder.GetTotalPizzaCount()} pizza(s)"; } else { ViewData["msg"] = "Pizza Count/Total Order Cost Limit Reached!!!"; } ViewData["orderCount"] = curOrder.GetTotalPizzaCount(); return(View("PizzaSelectionPage")); }