Esempio n. 1
0
    public static void Main(string[] args)
    {
        Pizza plainPizza  = new PlainPizza();

        Pizza nicePizza   = new WithExtraCheese(
                        new PlainPizza());

        Pizza superPizza  = new WithExtraOlives(
                        new WithExtraCheese(
                        new PlainPizza()));

        Pizza ultraPizza  = new WithExtraAnchovies(
                        new WithExtraOlives(
                        new WithExtraCheese(
                        new PlainPizza())));

        Console.WriteLine(
        "Plain Pizza: \tCost: {0:0.0} \tDescription: {1}",
         plainPizza.Cost, plainPizza.Description);

        Console.WriteLine(
        "Nice Pizza: \tCost: {0:0.0} \tDescription: {1}",
         nicePizza.Cost, nicePizza.Description);

        Console.WriteLine(
        "Super Pizza: \tCost: {0:0.0} \tDescription: {1}",
         superPizza.Cost, superPizza.Description);

        Console.WriteLine(
        "Ultra Pizza: \tCost: {0:0.0} \tDescription: {1}",
         ultraPizza.Cost, ultraPizza.Description);
    }
Esempio n. 2
0
        public AbstractPizza MakePizza(string[] ingrediensliste)
        {
            AbstractPizza pizza = new PlainPizza();


            foreach (var ingredient in ingrediensliste)
            {
                pizza = AddIngredients(ingredient, pizza);
            }

            return(pizza);
        }
Esempio n. 3
0
        private static void PizzaSelectionMenu()
        {
            CurrentPizzaOrder = new PizzaOrder(CurrentShopLocation.ShopID, ActiceUser.UserId);
            System.Console.WriteLine("Step-2: Pizza(s) Selection: ");
            bool addMorePizzas = true;

            while (addMorePizzas)
            {
                System.Console.WriteLine("1- Signiture Pizza");
                System.Console.WriteLine("2- Custom Pizza");
                System.Console.Write("Pizza Choice: ");
                int  pizzaChoice    = Convert.ToInt32(Console.ReadLine());
                bool pizzaAddedFlag = false;

                switch (pizzaChoice)
                {
                case 1:
                    System.Console.WriteLine("Choose one of the following recipes: ");
                    DisplayPizzaRecipes(PizzaRecipesDataRetriever.GetInstance().PizzaRecipesList);
                    System.Console.Write("Recipe Choice: ");
                    int recipeChoice = Convert.ToInt32(Console.ReadLine());

                    IPizza newPizza = PizzaRecipesDataRetriever.GetInstance().PizzaRecipesList[recipeChoice - 1];
                    newPizza       = PizzaSizeMenu(newPizza);
                    newPizza       = PizzaCrustMenu(newPizza);
                    newPizza       = PizzaToppingsMenu(newPizza, 2);
                    pizzaAddedFlag = CurrentPizzaOrder.AddPizzaToOrder(newPizza);
                    break;

                case 2:
                    IPizza customPizza = new PlainPizza();
                    customPizza    = PizzaSizeMenu(customPizza);
                    customPizza    = PizzaCrustMenu(customPizza);
                    customPizza    = PizzaToppingsMenu(customPizza, 1);
                    pizzaAddedFlag = CurrentPizzaOrder.AddPizzaToOrder(customPizza);
                    break;
                }
                if (pizzaAddedFlag)
                {
                    System.Console.WriteLine($"Pizza Added. Your order has: {CurrentPizzaOrder.GetTotalPizzaCount()} pizza(s)");
                    System.Console.WriteLine("Do you want to add more pizzas?");
                    System.Console.WriteLine("1- Yes 2- No");
                    System.Console.Write("Add Pizza Choice: ");
                    int addPizzaChoice = Convert.ToInt32(Console.ReadLine());
                    addMorePizzas = (addPizzaChoice == 1)? true : false;
                }
                else
                {
                    System.Console.WriteLine("Pizza Count/Total Order Cost Limit Reached!!!");
                    addMorePizzas = false;
                }
            }
        }
Esempio n. 4
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"));
        }
 public TopingDecorator(PlainPizza newPizza)
 {
     tempPizza = newPizza;
 }
Esempio n. 6
0
        static void Main(string[] args)
        {
            #region Strategy
            Console.WriteLine("------------Strategy------------------");
            Console.WriteLine("\r\n ------Strategy Test");
            {
                CashNormal cn = new CashNormal();
                Context    ct = new Context(cn);
                ct.PayAmount(100);

                CashDiscount cd = new CashDiscount(0.1);
                ct = new Context(cd);
                ct.PayAmount(100);

                CashReturn cr = new CashReturn(300, 100);
                ct = new Context(cr);
                ct.PayAmount(400);
            }
            #endregion

            #region Observer
            Console.WriteLine("------------Observer------------------");
            Console.WriteLine("\r\n ------Observer Test");
            SydneyStock   ss  = new SydneyStock();
            StockObserver ob1 = new StockObserver();
            ss.Register(ob1);
            ss.Notify(100);
            ss.Register(new StockObserver());
            ss.Notify(200);
            ss.Unregister(ob1);
            ss.Notify(300);
            #endregion

            #region Factory
            Console.WriteLine("------------Factory------------------");
            Console.WriteLine("\r\n ------Factory Test");
            WarshipFactory wf = new WarshipFactory();
            String         s  = "A";
            Warship        ws = wf.GetWarship(s);
            if (ws != null)
            {
                ws.Fight();
            }

            s  = "B";
            ws = wf.GetWarship(s);
            if (ws != null)
            {
                ws.Fight();
            }
            #endregion

            #region Abstract Factory
            Console.WriteLine("------------Abstract Factory------------------");
            Console.WriteLine("\r\n ------Abstract Factory Test");
            IRestaurant ir = new ChineseRestaurant();
            IVegetable  iv = ir.CookVegetable();
            iv.Display();
            IMeat im = ir.CookMeat();
            im.Display();

            ir = new AustralianRestaurant();
            iv = ir.CookVegetable();
            iv.Display();
            im = ir.CookMeat();
            im.Display();
            #endregion

            #region Singleton
            Console.WriteLine("------------Singleton------------------");
            Console.WriteLine("\r\n ------Singleton Test");
            MySingleton ms1 = MySingleton.GetInstance();
            MySingleton ms2 = MySingleton.GetInstance();
            if (ms1 == ms2)
            {
                Console.WriteLine("Same Instance of Singleton");
            }
            #endregion

            #region Builder
            Console.WriteLine("------------Builder------------------");
            Console.WriteLine("\r\n ------Builder Test");
            {
                IPersonBuilder        pb  = new FatPersonBuilder();
                PersonBuilderDirector pbd = new PersonBuilderDirector(pb);
                pbd.BuildPerson();
                pbd = new PersonBuilderDirector(new ThinPersonBuilder());
                pbd.BuildPerson();
            }
            #endregion

            #region AdvanceBuilder
            Console.WriteLine("\r\n ------AdvanceBuilder Test");
            {
                PersonBuilderDirectorBase pbd = new PersonBuilderDirector1();
                pbd.SetPersonBuilder(new FatPersonBuilder());
                pbd.BuildPerson();
                pbd.SetPersonBuilder(new ThinPersonBuilder());
                pbd.BuildPerson();
                Console.WriteLine();
                pbd = new PersonBuilderDirector2();
                pbd.SetPersonBuilder(new FatPersonBuilder());
                pbd.BuildPerson();
                pbd.SetPersonBuilder(new ThinPersonBuilder());
                pbd.BuildPerson();
            }
            #endregion

            #region Prototype
            Console.WriteLine("------------Prototype------------------");
            Resume r1 = new Resume();
            r1.id   = 1;
            r1.Name = "P1";
            r1.Experience.Company = "C1";
            Console.WriteLine(r1);
            Resume r2 = (Resume)r1.Clone();
            r2.id   = 2;
            r2.Name = "P2";
            r2.Experience.Company = "C2";
            Console.WriteLine(r2);
            #endregion

            #region Decorator
            Console.WriteLine("------------Decorator------------------");
            Pizza        pp = new PlainPizza();
            ToppingPizza tp = new Mozzarella(pp);
            ToppingPizza ts = new TomatoSauce(tp);
            ts.GetDescription();

            #endregion

            #region Command
            Console.WriteLine("------------Command------------------");
            Cook            barbecuerCook    = new BarbecuerCook();
            Cook            fryDishCook      = new FryDishCook();
            Command.Command barbecuerCommand = new BarbecuerCommand(barbecuerCook);
            Command.Command fryDishCommand   = new FryDishCommand(fryDishCook);

            Waiter waiter = new Waiter();
            waiter.AddCommand(barbecuerCommand);
            waiter.AddCommand(fryDishCommand);
            waiter.Notify();

            #endregion

            #region Adapter
            Console.WriteLine("------------Adapter------------------");
            BasketballPlayer        bp1 = new Forward();
            BasketballPlayer        bp2 = new Guard();
            ChineseCenter           cc  = new ChineseCenter();
            BasketballPlayer        bp3 = new CenterInterPreter(cc);
            List <BasketballPlayer> bps = new List <BasketballPlayer>();
            bps.Add(bp1);
            bps.Add(bp2);
            bps.Add(bp3);
            foreach (var item in bps)
            {
                item.Attack();
                item.Defense();
            }
            #endregion

            #region Facade
            Console.WriteLine("------------Facade------------------");
            FundFacade ff = new FundFacade();
            ff.Buy();
            ff.Sell();
            #endregion


            #region Bridge
            {
                Console.WriteLine("------------Bridge---------------------");
                IProtocol     udp = new Bridge.Udp();
                IProtocol     tcp = new Bridge.Tcp();
                Communication c   = new Communication();
                c.SetProtocol(udp);
                c.Work();
                c.SetProtocol(tcp);
                c.Work();
            }
            #endregion

            #region Template
            {
                Console.WriteLine("------------Template-----------------------");
                MediaProtocol tcp = new Template.Tcp();
                tcp.Work();
                MediaProtocol udp = new Template.Udp();
                udp.Work();
            }

            #endregion

            #region Composite
            {
                Console.WriteLine("------------Composite-----------------------");
                FileComponent First = new FileFolder()
                {
                    Name = "C"
                };
                FileComponent second1 = new FileFolder()
                {
                    Name = "-Folder1"
                };
                FileComponent second2 = new File()
                {
                    Name = "-File2"
                };
                FileComponent second1_1 = new File()
                {
                    Name = "--File1_1"
                };
                second1.Add(second1_1);
                First.Add(second1);
                First.Add(second2);
                First.Display();
            }
            #endregion

            Console.ReadLine();
        }