Esempio n. 1
0
        public BlankPizza GetPizza(string pizza)
        {
            switch (pizza)
            {
            case "Carbonara":
                CarbonaraBuilder carbonaraBuilder = new CarbonaraBuilder();
                carbonaraBuilder.SetCheese().SetTomatoes().SetMeat();
                return(carbonaraBuilder.pizza);

            case "Italian":
                ItalianBuilder italianBuilder = new ItalianBuilder();
                italianBuilder.SetCheese().SetTomatoes().SetOlives().SetMeat();
                return(italianBuilder.pizza);

            case "Margarita":
                MargaritaBuilder margaritaBuilder = new MargaritaBuilder();
                margaritaBuilder.SetCheese().SetTomatoes().SetOlives();
                return(margaritaBuilder.pizza);

            case "Pepperoni":
                PepperoniBuilder pepperoniBuilder = new PepperoniBuilder();
                pepperoniBuilder.SetCheese().SetTomatoes().SetMeat();
                return(pepperoniBuilder.pizza);

            default:
                throw new InvalidOperationException("This pizza is not on the menu");
            }
        }
Esempio n. 2
0
        public static AbstractPizza CreatePizza(string pizzaName)
        {
            AbstractPizzaBuilder pizzaBuilder;

            switch (pizzaName)
            {
            case "Margarita":
                pizzaBuilder = new MargaritaBuilder();
                break;

            case "Carbonara":
                pizzaBuilder = new CarbonaraBuilder();
                break;

            case "Italian":
                pizzaBuilder = new ItalianBuilder();
                break;

            case "Pepperoni":
                pizzaBuilder = new PepperoniBuilder();
                break;

            default:
                throw new ArgumentException("Pizza with that name is not on our menu");
            }

            pizzaBuilder.AddCheese().AddTomatoes().AddOlives().AddMeat();

            return(pizzaBuilder.Create());
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            string   number       = "";
            IBuilder pizzabuilder = null;

            while (pizzabuilder == null)
            {
                Console.WriteLine("Choose pizza: \nMargarita (1)\nItalian (2)\nPepperoni (3)\nCarbonara (4)");
                number = Console.ReadLine();
                switch (number)
                {
                case "1":
                {
                    pizzabuilder = new MargaritaBuilder();
                    break;
                }

                case "2":
                {
                    pizzabuilder = new ItalianBuilder();
                    break;
                }

                case "3":
                {
                    pizzabuilder = new PepperoniBuilder();
                    break;
                }

                case "4":
                {
                    pizzabuilder = new CarbonaraBuilder();
                    break;
                }

                default:
                {
                    Console.WriteLine("Write number");
                    break;
                }
                }
            }

            Console.WriteLine("You choosed {0} pizza with ingridients: ", pizzabuilder.createPizza().GetType().Name);
            foreach (var ingridient in pizzabuilder.createPizza().Ingridients)
            {
                Console.WriteLine("\t {0}", ingridient);
            }
            Console.WriteLine("Would you like to add extra ingridients? (y/n)");
            string answer = "";
            APizza pizza  = null;

            while (answer != "y" && answer != "n")
            {
                answer = Console.ReadLine();
                switch (answer)
                {
                case "y":
                {
                    pizza = constructPizza(pizzabuilder);
                    break;
                }

                case "n":
                {
                    pizza = pizzabuilder.createPizza();
                    break;
                }

                default:
                {
                    Console.WriteLine("Type 'n' or 'y'");
                    break;
                }
                }
            }
            Console.WriteLine("Enjoy your {0} pizza with ingridients: ", pizza.GetType().Name);
            foreach (var ingridient in pizza.Ingridients)
            {
                Console.WriteLine("\t {0}", ingridient);
            }
        }