예제 #1
0
        public override Pizza CreatePizza(PizzaTypes pizzaType)
        {
            Pizza             pizza             = null;
            IngridientFactory ingridientFactory = new NYIngridientFactory();

            switch (pizzaType)
            {
            case PizzaTypes.Cheese:
                pizza = new CheesePizza(ingridientFactory);
                break;

            case PizzaTypes.Greek:
                pizza = new GreekPizza(ingridientFactory);
                break;

            case PizzaTypes.Papperoni:
                pizza = new PepperoniPizza(ingridientFactory);
                break;

            default:
                throw new ArgumentException("Wrong PizzaTypes");
            }
            if (pizza != null)
            {
                return(pizza);
            }
            else
            {
                throw new NullReferenceException("Pizza is null");
            }
        }
예제 #2
0
        override protected Pizza createPizza(PizzaTypes type)
        {
            Pizza pizza = null;

            switch (type)
            {
            case PizzaTypes.cheese:
                pizza = new ChicagoStyleCheesePizza();
                break;

            case PizzaTypes.pepperoni:
                pizza = new ChicagoStylePepperoniPizza();
                break;

            case PizzaTypes.clam:
                pizza = new ChicagoStyleClamPizza();
                break;

            case PizzaTypes.veggie:
                pizza = new ChicagoStyleVeggiePizza();
                break;

            default:
                break;
            }

            return(pizza);
        }
예제 #3
0
        public Order MakeOrder(String customer, PizzaTypes pizzaType)
        {
            Order order = new Order(customer, pizzaType);
            Task  task  = MakePizzaAsync(order);

            return(order);
        }
        override protected Pizza createPizza(PizzaTypes type)
        {
            Pizza pizza = null;

            switch (type) // for type safety we can use enum and a switch rather than checking strings with conditional statements
            {
            case PizzaTypes.cheese:
                pizza = new NYStyleCheesePizza();
                break;

            case PizzaTypes.pepperoni:
                pizza = new NYStylePepperoniPizza();
                break;

            case PizzaTypes.clam:
                pizza = new NYStyleClamPizza();
                break;

            case PizzaTypes.veggie:
                pizza = new NYStyleVeggiePizza();
                break;

            default:
                break;
            }

            return(pizza);
        }
예제 #5
0
        public void OrderPizza(PizzaTypes pizzaType)
        {
            if (SimplePizzaFactory == null)
            {
                throw new NullReferenceException("SimplePizzaFactory in null");
            }
            Pizza pizza = SimplePizzaFactory.CreatePizza(pizzaType);

            pizza.MakePizza();
        }
 public override Pizza CreatePizza(PizzaTypes type)
 {
     return(type switch
     {
         PizzaTypes.Cheese => new ChicagoStyleCheesePizza(),
         PizzaTypes.Veggie => new ChicagoStyleVeggiePizza(),
         PizzaTypes.Clam => new ChicagoStyleClamPizza(),
         PizzaTypes.Pepperoni => new ChicagoStylePepperoniPizza(),
         _ => null,
     });
        public Pizza OrderPizza(PizzaTypes type)
        {
            Pizza pizza = CreatePizza(type);

            pizza.Prepare();
            pizza.Bake();
            pizza.Cut();
            pizza.Box();
            return(pizza);
        }
예제 #8
0
        public Pizza OrderPizza(PizzaTypes pizzaType = PizzaTypes.Margherita)
        {
            Pizza pizza;

            pizza = _factory.CreatePizza(pizzaType);
            pizza.Prepare();
            pizza.Bake();
            pizza.Cut();
            pizza.Box();
            return(pizza);
        }
예제 #9
0
파일: Pizza.cs 프로젝트: krystofurr/HC-CIS
        public string Test
        {
            get { return test; }
            set { test = value; }
        }


        public Pizza(PizzaTypes pizzaType, SauceTypes sauceType, CrustTypes crustType,
                      PizzaToppings[] pizzaToppings, PizzaSizes pizzaSize) : base(pizzaType.ToString())
        {
            this.pizzaType = pizzaType;
        public IPizza OrderPizza(PizzaTypes type)
        {
            var pizza = PizzaFactory.CreatePizza(type);

            pizza.Prepare();
            pizza.Bake();
            pizza.Box();
            pizza.Cut();

            return(pizza);
        }
예제 #11
0
        public void SimplePizzaFactory_Can_create_pizzas(PizzaTypes type)
        {
            // Arrange

            var simpleFactory = new SimplePizzaFactory();

            // Act
            var pizza = simpleFactory.CreatePizza(type);

            // Assert
            Assert.That(pizza, Is.Not.Null);
            Assert.That(pizza.PizzaType, Is.EqualTo(type.ToString()));
        }
예제 #12
0
        public Pizza orderPizza(PizzaTypes type)
        {
            Pizza pizza;

            pizza = createPizza(type);

            pizza.prepare();
            pizza.bake();
            pizza.cut();
            pizza.box();

            return(pizza);
        }
예제 #13
0
        public void OrderPizza(PizzaTypes pizzaType)
        {
            Pizza pizza = CreatePizza(pizzaType);

            if (pizza != null)
            {
                pizza.MakePizza();
            }
            else
            {
                throw new NullReferenceException("Pizza is null");
            }
        }
예제 #14
0
        public static Pizza CreatePizza(PizzaTypes name)
        {
            Pizza pizza = name switch
            {
                PizzaTypes.Capriciosa => new CapriciosaPizza(),
                PizzaTypes.Florenza => new FlorenzaPizza(),
                PizzaTypes.Margherita => new MargheritaPizza(),
                PizzaTypes.Inferno => new InfernoPizza(),
                _ => null
            };

            return(pizza);
        }
    }
예제 #15
0
        public void PizzaStore_Can_order_pizzas(PizzaTypes type)
        {
            // Arrange

            var simpleFactory = new SimplePizzaFactory();
            var pizzaStore    = new PizzaStore(simpleFactory);

            // Act
            var pizza = pizzaStore.OrderPizza(type);

            // Assert
            Assert.That(pizza, Is.Not.Null);
            Assert.That(pizza.PizzaType, Is.EqualTo(type.ToString()));
        }
예제 #16
0
        public Pizza CreatePizza(PizzaTypes pizzaType)
        {
            switch (pizzaType)
            {
            case PizzaTypes.Verona:
                return(new PizzaVerona());

            case PizzaTypes.Napolitana:
                return(new PizzaNapolitana());

            case PizzaTypes.Margherita:
            default:
                return(new PizzaMargherita());
            }
        }
예제 #17
0
        public Pizza OrderPizza(PizzaTypes pizzaType)
        {
            Pizza pizza;

            pizza = CreatePizza(pizzaType);
            //this store has the given pizza?
            if (!pizza.GetType().Equals(typeof(PizzaNoPizza)))
            {
                pizza.Prepare();
                pizza.Bake();
                pizza.Cut();
                pizza.Box();
            }
            return(pizza);
        }
예제 #18
0
        protected override Pizza CreatePizza(PizzaTypes pizzaType)
        {
            switch (pizzaType)
            {
            case PizzaTypes.Alentejana:
                return(new PizzaAlentejana());

            case PizzaTypes.Portuguesa:
                return(new PizzaPortuguesa());

            case PizzaTypes.Margherita:
                return(new PizzaMargaritaPortuguesa());

            default:
                return(new PizzaNoPizza());
            }
        }
예제 #19
0
        protected override Pizza CreatePizza(PizzaTypes pizzaType)
        {
            switch (pizzaType)
            {
            case PizzaTypes.Verona:
                return(new PizzaVerona());

            case PizzaTypes.Napolitana:
                return(new PizzaNapolitana());

            case PizzaTypes.Margherita:
                return(new PizzaMargherita());

            default:
                return(new PizzaNoPizza());
            }
        }
        // Fetch the available types of Pizza
        public void FetchPizzaTypes()
        {
            string query = "SELECT Type, Tag, BasePrice FROM PizzaType;";

            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                SqlCommand cmd = new SqlCommand(query, conn);

                conn.Open();

                SqlDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    PizzaTypes.Add(new PizzaType(reader.GetString(0), reader.GetString(1), (float)reader.GetDecimal(2)));
                }
            }
        }
 public override Pizza CreatePizza(PizzaTypes type)
 {
     return((Pizza)(type switch
     {
         PizzaTypes.Cheese => new CheesePizza(new NYPizzaIngredientFactory())
         {
             Name = "New York Style Cheese Pizza"
         },
         PizzaTypes.Meat => new MeatPizza(new NYPizzaIngredientFactory())
         {
             Name = "New York Style Pepperoni Pizza"
         },
         PizzaTypes.Clam => new SeafoodPizza(new NYPizzaIngredientFactory())
         {
             Name = "New York Style Seafood Pizza"
         },
         PizzaTypes.Veggie => new VeggiePizza(new NYPizzaIngredientFactory())
         {
             Name = "New York Style Veggie Pizza"
         },
         _ => throw new ArgumentException("Unknown pizza type."),
     }));
        /// <summary>
        /// Returns a pizza based on the provided type
        /// </summary>
        /// <param name="type">The type of piza requested</param>
        /// <returns>The pizza requested</returns>
        public IPizza CreatePizza(PizzaTypes type)
        {
            IPizza pizza = null;

            var loggerFactory = new LoggerFactory();

            switch (type)
            {
            case PizzaTypes.Margarita:
                pizza = new MargaritaPizza(loggerFactory.CreateLogger <IPizza>());
                break;

            case PizzaTypes.Pepperoni:
                pizza = new PepperoniPizza(loggerFactory.CreateLogger <IPizza>());
                break;

            default:
                throw new ArgumentException();
            }

            return(pizza);
        }
예제 #23
0
        public Pizza Order(PizzaTypes type, IEnumerable <ToppingType> withToppings = null)
        {
            var pizza = PizzaFactory.CreatePizza(type);

            if (pizza == null)
            {
                Console.WriteLine($"Selected {type} Pizza is not available at {Location}");
                return(null);
            }
            if (withToppings != null && withToppings.Any())
            {
                foreach (var toppingType in withToppings)
                {
                    var topping = ToppingsFactory.CreateTopping(toppingType);
                    pizza.Toppings.Add(topping);
                }
            }
            pizza.Prepare();
            pizza.Bake();
            pizza.Cut();
            pizza.Box();
            return(pizza);
        }
예제 #24
0
 public Order(string customerName, PizzaTypes PizzaType)
 {
     CustomerName   = customerName;
     this.PizzaType = PizzaType;
 }
예제 #25
0
 public abstract Pizza CreatePizza(PizzaTypes pizzaType);
예제 #26
0
 public Order(String name, PizzaTypes PizzaType)
 {
     CustomerName   = name;
     this.PizzaType = PizzaType;
 }
예제 #27
0
 protected abstract Pizza CreatePizza(PizzaTypes pizzaType);
예제 #28
0
 // other methods here
 protected abstract Pizza createPizza(PizzaTypes type);
예제 #29
0
 // This is the method that will be use to create the IPizza object. Each enum type map a different
 // class that creates diferent object, but all these objects implements IPizza.
 public IPizza CreatePizza(PizzaTypes pizzaType) => _pizzaFactory[pizzaType]?.Creator();
예제 #30
0
 public Pizza(PizzaTypes pizzaType)
 {
     PizzaType = pizzaType;
 }