示例#1
0
        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);
        }
示例#2
0
        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"));
        }