예제 #1
0
        private static AbstractMeat ChooseMeatMenu()
        {
            AbstractMeat chosenMeat = null;

            while (chosenMeat == null)
            {
                WriteLine("Choose meat type:\n1. Pork\n2. Chicken\n3. Beef\n");
                switch (ReadLine())
                {
                case "1":
                    chosenMeat = new Pork();
                    break;

                case "2":
                    chosenMeat = new Chicken();
                    break;

                case "3":
                    chosenMeat = new Beef();
                    break;

                case "4":
                    chosenMeat = new Veal();
                    break;

                default:
                    WriteLine("Use 1, 2, 3, 4 to choose meat. Try again.");
                    break;
                }
            }
            return(chosenMeat);
        }
예제 #2
0
파일: Beef.cs 프로젝트: naaturaz/SM
    /// <summary>
    /// Intended to be used For the first load of people spawned
    /// </summary>
    static public Beef CreateBeef(Vector3 iniPos, Building spawner)
    {
        Beef obj = null;

        obj = (Beef)Resources.Load(Root.beefMale1, typeof(Beef));

        obj = (Beef)Instantiate(obj, iniPos, Quaternion.identity);
        obj.Geometry.GetComponent <Renderer>().sharedMaterial = Resources.Load(Root.beefMat1) as Material;
        obj.gameObject.transform.SetParent(spawner.transform);
        obj.Spawner = spawner;

        return(obj);
    }
예제 #3
0
        static void Main(string[] args)
        {
            AbstractFactory af1 = new WuhanSupplier();
            Beef            b1  = af1.GetBeef();
            Fish            f1  = af1.GetFish();

            b1.Print();
            f1.Print();
            AbstractFactory af2 = new ShenzhenSupplier();

            af2.GetBeef().Print();
            af2.GetFish().Print();
        }
예제 #4
0
        private void button1_Click(object sender, EventArgs e)
        {
            Breakfast breakfast = new Jiaozi();

            if (rbMF.Checked == true)
            {
                breakfast = new Mifen();
            }
            else if (rbHD.Checked == true)
            {
                breakfast = new Hundun();
            }

            if (cbEgg.Checked == true)
            {
                int n = int.Parse(tbEgg.Text);
                for (int i = 0; i < n; i++)
                {
                    breakfast = new Egg(breakfast);
                }
            }

            if (cbBeef.Checked == true)
            {
                int n = int.Parse(tbBeef.Text);
                for (int i = 0; i < n; i++)
                {
                    breakfast = new Beef(breakfast);
                }
            }

            if (cbXG.Checked == true)
            {
                int n = int.Parse(tbXG.Text);
                for (int i = 0; i < n; i++)
                {
                    breakfast = new Xianggan(breakfast);
                }
            }

            if (cbXCR.Checked == true)
            {
                int n = int.Parse(tbXCR.Text);
                for (int i = 0; i < n; i++)
                {
                    breakfast = new Xiaochaorou(breakfast);
                }
            }

            tbTotal.Text = breakfast.GetPrice().ToString();
        }
예제 #5
0
        public void TestMethod2()
        {
            Food beef      = new Beef();
            Food fried     = new Fried();
            Food sodawater = new SodaWater();

            double tr      = fried.cost() + beef.cost() + sodawater.cost();
            Facade facade1 = new Facade();
            double tr1     = facade1.BeefMenu(tr);

            Assert.AreEqual(tr1, 7.2);
            Assert.IsNotNull(tr);
            Assert.IsNotNull(tr1);
        }
예제 #6
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            BeefObject = await _context.Beef.FirstOrDefaultAsync(m => m.ID == id);

            if (BeefObject == null)
            {
                return(NotFound());
            }
            return(Page());
        }
예제 #7
0
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            AProducts Abeef = new Beef(300, 20, MeatFactoryName.Лидский_Мясокомбинат,
                                       MeatProductType.Колбаса);
            ICrud <Beef>   crud   = new ICrudBeef();
            ICrud <Fish>   crud1  = new ICrudFish();
            ICrud <Fruits> crud2  = new ICrudFruit();
            Beef           beef   = crud.ReadByID(4);
            Fish           fish   = crud1.ReadByID(1);
            Fruits         fruits = crud2.ReadByID(1);

            Console.WriteLine(beef);
            Console.WriteLine(fish);
            Console.WriteLine(fruits);
        }
예제 #8
0
        public async Task <IActionResult> OnPostAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            BeefObject = await _context.Beef.FindAsync(id);

            if (BeefObject != null)
            {
                _context.Beef.Remove(BeefObject);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
예제 #9
0
        public void DoWork()
        {
            //客人訂了一份土司,不需要配料,列出他的價格與描述
            IBreakfast bf1 = new Toast();

            Console.WriteLine("餐點:{0} 價格:{1}", bf1.GetDescription(), bf1.GetCost());

            //客人訂了一份貝果,要加"雙倍"火腿,列出他的價格與描述
            IBreakfast bf2 = new Bego();

            bf2 = new Ham(bf2);
            bf2 = new Ham(bf2);
            Console.WriteLine("餐點:{0} 價格:{1}", bf2.GetDescription(), bf2.GetCost());

            //客人訂了一份漢堡,要加牛肉 生菜 起司,列出他的價格與描述
            IBreakfast bf3 = new Hamburger();

            bf3 = new Beef(bf3);
            bf3 = new Lettuce(bf3);
            bf3 = new Cheese(bf3);
            Console.WriteLine("餐點:{0} 價格:{1}", bf3.GetDescription(), bf3.GetCost());
        }
예제 #10
0
        static void Main(string[] args)
        {
            var beastMusic = new Metal();

            beastMusic.Destroy(50);
            // Console.WriteLine(beastMusic.Sing());

            var horrorFilm = new Horror();

            horrorFilm.scaryAsShit(7);

            var beefyStuff = new Beef();

            beefyStuff.Good(Cut.Ribeye);

            var strongCoffee = new Espresso();

            strongCoffee.Perky();

            Console.WriteLine();
            Console.ReadLine();
        }
예제 #11
0
        public IActionResult Dish()
        {
            string DishChoosen = Request.Form["MenuChoice"];

            string[] finalDish;

            Beef       beef    = new Beef();
            Chicken    chicken = new Chicken();
            Vegetarian vege    = new Vegetarian();

            switch (DishChoosen)
            {
            case "Beef":
                finalDish = beef.MyDish();
                break;

            case "Chicken":
                finalDish = chicken.MyDish();
                break;

            case "Vegetarian":
                finalDish = vege.MyDish();
                break;

            default:
                finalDish = beef.MyDish();
                break;
            }

            ViewBag.Dish          = DishChoosen;
            ViewBag.Starter       = finalDish[0];
            ViewBag.Main          = finalDish[1];
            ViewBag.Accompaniment = finalDish[2];
            ViewBag.Dessert       = finalDish[3];
            ViewBag.Drink         = finalDish[4];

            return(View());
        }
예제 #12
0
        /// <summary>
        /// 实现接口方法,框架默认的运行模块后自动调用初始化方法
        /// </summary>
        public void Initialize()
        {
            //创建一个苹果对象实例,这里是一个食物
            Food fd1 = new Apple();

            //通过调用SwapAppend通知框架fd对象是可以用于交换的对象
            Lemon.SwapAppend(fd1);
            //创建牛肉实例
            Food fd2 = new Beef();

            //设置交换,指定将牛肉对象的所有属性值作为自定义关键字
            Lemon.SwapAppend(fd2, true);
            //创建转基因牛肉实例
            Food fd4 = new Beef();

            fd4.Transgenosis = true;
            //设置交换,指定将牛肉对象的所有属性值作为自定义关键字
            Lemon.SwapAppend(fd4, true);
            //创建榛子实例
            Food Fd3 = new Filbert();

            //设置交换,指定输入的对象作为自定义关键字
            Lemon.SwapAppend(Fd3, "榛子", "铁岭", "开原", "好吃的", 88);
        }
예제 #13
0
        public override void BuildBurger()
        {
            Random rnd            = new Random();
            int    randomMaxMeats = rnd.Next(_maxItems[0]);

            for (int i = 0; i < randomMaxMeats; i++)
            {
                int randMeat = rnd.Next(3);
                switch (randMeat)
                {
                case 0:
                    Beef b = new Beef {
                        Weight = rnd.NextDouble() * rnd.Next(5), Name = "говядина"
                    };
                    Burger.AddMeat(b);
                    Console.WriteLine("Добавили говядины");
                    MoneyCounter.LogBuyes(b);
                    break;

                case 1:
                    Ham h = new Ham {
                        Weight = rnd.NextDouble() * rnd.Next(5), Name = "ветчина"
                    };
                    Burger.AddMeat(h);
                    Console.WriteLine("Добавили ветчины");
                    MoneyCounter.LogBuyes(h);
                    break;

                case 2:
                    Sausage s = new Sausage {
                        Weight = rnd.NextDouble() * rnd.Next(5), Name = "сосиска"
                    };
                    Burger.AddMeat(s);
                    Console.WriteLine("Добавили сосиску");
                    MoneyCounter.LogBuyes(s);
                    break;
                }
                Thread.Sleep(40);
            }

            int randomMaxVegetables = rnd.Next(_maxItems[1]);

            for (int i = 0; i < randomMaxVegetables; i++)
            {
                int randVegetable = rnd.Next(3);
                switch (randVegetable)
                {
                case 0:
                    Vegetable Tomato = new Vegetable()
                    {
                        Weight        = rnd.NextDouble(),
                        VegetableType = TypeOfVegetable.Tomato,
                        Name          = "красный помидор"
                    };
                    Burger.AddVegetable(Tomato);
                    Console.WriteLine("Добавили красного помидора");
                    MoneyCounter.LogBuyes(Tomato);
                    break;

                case 1:
                    Vegetable Onion = new Vegetable()
                    {
                        Weight        = rnd.NextDouble(),
                        VegetableType = TypeOfVegetable.Onion,
                        Name          = "лук репчатый"
                    };
                    Burger.AddVegetable(Onion);
                    Console.WriteLine("Добавили лука репчатого");
                    MoneyCounter.LogBuyes(Onion);
                    break;

                case 2:
                    Vegetable Cucumber = new Vegetable()
                    {
                        Weight        = rnd.NextDouble(),
                        VegetableType = TypeOfVegetable.Cucumber,
                        Name          = "соленый огурчик"
                    };
                    Burger.AddVegetable(Cucumber);
                    Console.WriteLine("Добавили соленого огурчика");
                    MoneyCounter.LogBuyes(Cucumber);
                    break;
                }
                Thread.Sleep(40);
            }

            int randomMaxCheeseSlices = rnd.Next(_maxItems[2]);

            for (int i = 0; i < randomMaxCheeseSlices; i++)
            {
                MoneyCounter.LogBuyes(Burger.AddCheeseSlice());
                Thread.Sleep(40);
            }
            Console.WriteLine("Ура ваш бургер был собран");
        }
예제 #14
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (comboBox1.Text == "Фрукты")
            {
                double         price = double.Parse(textBox1.Text);
                int            count = int.Parse(textBox2.Text);
                AProducts      item  = new Fruits(price, count, (FruitType)comboBox2.SelectedItem, (DealerCountry)comboBox3.SelectedItem);
                ICrud <Fruits> crud  = new ICrudFruit();
                crud.Create((Fruits)item);
            }
            else if (comboBox1.Text == "Овощи")
            {
                double             price = double.Parse(textBox1.Text);
                int                count = int.Parse(textBox2.Text);
                AProducts          item  = new Vegetables(price, count, (VegetableType)comboBox2.SelectedItem, (DealerCountry)comboBox3.SelectedItem);
                ICrud <Vegetables> crud  = new ICrudVegetable();
                crud.Create((Vegetables)item);
            }
            else if (comboBox1.Text == "Зелень")
            {
                double             price = double.Parse(textBox1.Text);
                int                count = int.Parse(textBox2.Text);
                AProducts          item  = new Herbaceous(price, count, (HerbaceousType)comboBox2.SelectedItem, (DealerCountry)comboBox3.SelectedItem);
                ICrud <Herbaceous> crud  = new ICrudHerbaceous();
                crud.Create((Herbaceous)item);
            }
            else if (comboBox1.Text == "Говядина")
            {
                double       price = double.Parse(textBox1.Text);
                int          count = int.Parse(textBox2.Text);
                AProducts    item  = new Beef(price, count, (MeatFactoryName)comboBox2.SelectedItem, (MeatProductType)comboBox3.SelectedItem);
                ICrud <Beef> crud  = new ICrudBeef();
                crud.Create((Beef)item);
            }
            if (comboBox1.Text == "Свинина")
            {
                double       price = double.Parse(textBox1.Text);
                int          count = int.Parse(textBox2.Text);
                AProducts    item  = new Pork(price, count, (MeatFactoryName)comboBox2.SelectedItem, (MeatProductType)comboBox3.SelectedItem);
                ICrud <Pork> crud  = new ICrudPork();
                crud.Create((Pork)item);
            }
            else if (comboBox1.Text == "Курица")
            {
                double          price = double.Parse(textBox1.Text);
                int             count = int.Parse(textBox2.Text);
                AProducts       item  = new Chicken(price, count, (MeatFactoryName)comboBox2.SelectedItem, (MeatProductType)comboBox3.SelectedItem);
                ICrud <Chicken> crud  = new ICrudChicken();
                crud.Create((Chicken)item);
            }


            else if (comboBox1.Text == "Рыба")
            {
                double       price = double.Parse(textBox1.Text);
                int          count = int.Parse(textBox2.Text);
                AProducts    item  = new Fish(price, count, (FishName)comboBox2.SelectedItem, (DealerCountry)comboBox3.SelectedItem);
                ICrud <Fish> crud  = new ICrudFish();
                crud.Create((Fish)item);
            }
        }
예제 #15
0
 protected abstract void VisitInternal(Beef beef);
예제 #16
0
 protected override void VisitInternal(Beef beef) => beef.AmountOfPepperUsed *= 1.15;
예제 #17
0
        static void Main(string[] args)
        {
            string ing, kitchen;

            Console.Write("Enter Country (SA/US): ");
            kitchen = Console.ReadLine();
            Console.Write("Do you want to create a Taco or Burrito? ");
            ing = Console.ReadLine();
            Console.WriteLine();
            Console.WriteLine();

            if (kitchen == "SA" || kitchen == "sa")
            {
                if (ing == "Taco" || ing == "taco")
                {
                    Taco saTaco = new Taco(new SAIngredientFactory());
                    Console.WriteLine($"SA Taco: {saTaco.DescribeTaco()}");
                }
                else if (ing == "Burrito" || ing == "burrito")
                {
                    Burrito saBurrito = new Burrito(new SAIngredientFactory());
                    Console.WriteLine($"SA Burrito: {saBurrito.DescribeBurrito()}");
                }
            }
            else if (kitchen == "US" || kitchen == "us")
            {
                if (ing == "Taco" || ing == "taco")
                {
                    Taco usTaco = new Taco(new USIngredientFactory());
                    Console.WriteLine($"US Taco: {usTaco.DescribeTaco()}");
                }
                else if (ing == "Burrito" || ing == "burrito")
                {
                    Burrito usBurrito = new Burrito(new USIngredientFactory());
                    Console.WriteLine($"US Burrito: {usBurrito.DescribeBurrito()}");
                }
            }

            //----------------------------------- Adding fillings to ingredient for SA Taco kitchen, for burrito just change Taco to burrito in next line

            Ingredient newIngredientSA = new Taco(new SAIngredientFactory());
            string     userInputSA     = "Yes";
            string     chosenFillingSA;

            while (userInputSA == "Yes" || userInputSA == "yes" || userInputSA == "YES")
            {
                Console.Write("What filling do you want to add to your ingredient? ");
                chosenFillingSA = Console.ReadLine();
                switch (chosenFillingSA)
                {
                case "Chicken":
                case "chicken":
                    newIngredientSA = new Chicken(newIngredientSA);
                    break;

                case "Mutton":
                case "mutton":
                    newIngredientSA = new Mutton(newIngredientSA);
                    break;

                case "Samp":
                case "samp":
                    newIngredientSA = new Samp(newIngredientSA);
                    break;

                case "Chedder Cheese":
                case "chedder cheese":
                case "Chedder cheese":
                    newIngredientSA = new CheddarCheese(newIngredientSA);
                    break;

                case "Sliced Avocados":
                case "sliced avocados":
                case "Sliced avocados":
                    newIngredientSA = new SlicedAvocados(newIngredientSA);
                    break;

                case "Jasmin Rice":
                case "jasmin rice":
                case "Jasmin rice":
                    newIngredientSA = new JasminRice(newIngredientSA);
                    break;

                case "Refried Beans":
                case "Refried beans":
                case "refried beans":
                    newIngredientSA = new RefriedBeans(newIngredientSA);
                    break;

                case "Smooth Cream Cheese":
                case "smooth cream cheese":
                case "Smooth Cream cheese":
                    newIngredientSA = new SmoothCreamCheese(newIngredientSA);
                    break;

                case "Relish":
                case "relish":
                    newIngredientSA = new Relish(newIngredientSA);
                    break;

                case "Jalapeno Chilies":
                case "jalapeno chilies":
                case "Jalapeno chilies":
                    newIngredientSA = new JalapenoChilies(newIngredientSA);
                    break;
                }// end switch
                Console.Write("Do you want to add another filling to your ingredient? ");
                userInputSA = Console.ReadLine();
            } // end while loop
            Console.WriteLine();
            Console.WriteLine(newIngredientSA.GetDiscription() + " \tFinal Price: " + newIngredientSA.Cost().ToString("C"));
            Console.WriteLine();



            //----------------------------------- Adding fillings to ingredient for US Taco kitchen, for burrito just change Taco to Burrito in next line

            Ingredient newIngredientUS = new Taco(new USIngredientFactory());
            string     userInputUS     = "Yes";
            string     chosenFillingUS;

            while (userInputUS == "Yes" || userInputUS == "yes" || userInputUS == "YES")
            {
                Console.Write("What filling do you want to add to your ingredient? ");
                chosenFillingUS = Console.ReadLine();
                switch (chosenFillingUS)
                {
                case "Turkey":
                case "turkey":
                    newIngredientUS = new Turkey(newIngredientUS);
                    break;

                case "Beef":
                case "beef":
                    newIngredientUS = new Beef(newIngredientUS);
                    break;

                case "Chickpeas":
                case "chickpeas":
                    newIngredientUS = new Chickpeas(newIngredientUS);
                    break;

                case "Pepper Jack Cheese":
                case "pepper jack cheese":
                case "Pepper jack cheese":
                    newIngredientUS = new PepperJackCheese(newIngredientUS);
                    break;

                case "Guacamole":
                case "guacomole":
                    newIngredientUS = new Guacamole(newIngredientUS);
                    break;

                case "Basmati Rice":
                case "basmati rice":
                case "Basmati rice":
                    newIngredientUS = new BasmatiRice(newIngredientUS);
                    break;

                case "Black Beans":
                case "black beans":
                case "Black beans":
                    newIngredientUS = new BlackBeans(newIngredientUS);
                    break;

                case "Chunky Cream Cheese":
                case "chunky cream cheese":
                case "Chunky Cream cheese":
                    newIngredientUS = new ChunkyCreamCheese(newIngredientUS);
                    break;

                case "Salsa":
                case "salsa":
                    newIngredientUS = new Salsa(newIngredientUS);
                    break;

                case "Habanero Chilies":
                case "habanero chilies":
                case "Habanero chilies":
                    newIngredientUS = new HabaneroChilies(newIngredientUS);
                    break;
                }// end switch
                Console.Write("Do you want to add another filling to your ingredient? ");
                userInputUS = Console.ReadLine();
            } // end while loop
            Console.WriteLine();
            Console.WriteLine(newIngredientUS.GetDiscription() + " \tFinal Price: " + newIngredientUS.Cost().ToString("C"));
            Console.WriteLine();

            Console.ReadLine();
        }
예제 #18
0
 protected override void VisitInternal(Beef beef) => beef.AmountOfSaltUsed *= 0.95;
예제 #19
0
 private void textBox4_TextChanged(object sender, EventArgs e)
 {
     dataGridView1.Rows.Clear();
     if (comboBox1.Text == "Говядина")
     {
         ICrud <Beef> crud = new ICrudBeef();
         data = crud.ReadAll();
         foreach (string[] s in data)
         {
             dataGridView1.Rows.Add(s);
         }
         Beef product = crud.ReadByID(Convert.ToInt32(textBox4.Text));
         textBox2.Text          = product.Price.ToString();
         textBox3.Text          = product.Count.ToString();
         comboBox2.SelectedItem = product.MeatProductType;
         comboBox3.SelectedItem = product.MeatFactoryName;
     }
     else if (comboBox1.Text == "Свинина")
     {
         ICrud <Pork> crud = new ICrudPork();
         data = crud.ReadAll();
         foreach (string[] s in data)
         {
             dataGridView1.Rows.Add(s);
         }
         crud.ReadByID(Convert.ToInt32(textBox4.Text));
         Pork product = crud.ReadByID(Convert.ToInt32(textBox4.Text));
         textBox2.Text          = product.Price.ToString();
         textBox3.Text          = product.Count.ToString();
         comboBox2.SelectedItem = product.MeatProductType;
         comboBox3.SelectedItem = product.MeatFactoryName;
     }
     else if (comboBox1.Text == "Курица")
     {
         ICrud <Chicken> crud = new ICrudChicken();
         data = crud.ReadAll();
         foreach (string[] s in data)
         {
             dataGridView1.Rows.Add(s);
         }
         crud.ReadByID(Convert.ToInt32(textBox4.Text));
         Chicken product = crud.ReadByID(Convert.ToInt32(textBox4.Text));
         textBox2.Text          = product.Price.ToString();
         textBox3.Text          = product.Count.ToString();
         comboBox2.SelectedItem = product.MeatProductType;
         comboBox3.SelectedItem = product.MeatFactoryName;
     }
     else if (comboBox1.Text == "Рыба")
     {
         ICrud <Fish> crud = new ICrudFish();
         data = crud.ReadAll();
         foreach (string[] s in data)
         {
             dataGridView1.Rows.Add(s);
         }
         crud.ReadByID(Convert.ToInt32(textBox4.Text));
         Fish product = crud.ReadByID(Convert.ToInt32(textBox4.Text));
         textBox2.Text          = product.Price.ToString();
         textBox3.Text          = product.Count.ToString();
         comboBox2.SelectedItem = product.FishName;
         comboBox3.SelectedItem = product.DealerCountry;
     }
     else if (comboBox1.Text == "Фрукты")
     {
         ICrud <Fruits> crud = new ICrudFruit();
         data = crud.ReadAll();
         foreach (string[] s in data)
         {
             dataGridView1.Rows.Add(s);
         }
         crud.ReadByID(Convert.ToInt32(textBox4.Text));
         Fruits product = crud.ReadByID(Convert.ToInt32(textBox4.Text));
         textBox2.Text          = product.Price.ToString();
         textBox3.Text          = product.Count.ToString();
         comboBox2.SelectedItem = product.Type;
         comboBox3.SelectedItem = product.Country;
     }
     else if (comboBox1.Text == "Овощи")
     {
         ICrud <Vegetables> crud = new ICrudVegetable();
         data = crud.ReadAll();
         foreach (string[] s in data)
         {
             dataGridView1.Rows.Add(s);
         }
         crud.ReadByID(Convert.ToInt32(textBox4.Text));
         Vegetables product = crud.ReadByID(Convert.ToInt32(textBox4.Text));
         textBox2.Text          = product.Price.ToString();
         textBox3.Text          = product.Count.ToString();
         comboBox2.SelectedItem = product.Type;
         comboBox3.SelectedItem = product.Country;
     }
     else if (comboBox1.Text == "Растительность")
     {
         ICrud <Herbaceous> crud = new ICrudHerbaceous();
         data = crud.ReadAll();
         foreach (string[] s in data)
         {
             dataGridView1.Rows.Add(s);
         }
         crud.ReadByID(Convert.ToInt32(textBox4.Text));
         Herbaceous product = crud.ReadByID(Convert.ToInt32(textBox4.Text));
         textBox2.Text          = product.Price.ToString();
         textBox3.Text          = product.Count.ToString();
         comboBox2.SelectedItem = product.Type;
         comboBox3.SelectedItem = product.Country;
     }
 }
예제 #20
0
        static void Main(string[] args)
        {
            // Configure Observer pattern
            ConcreteKitchen sKitchen    = new ConcreteKitchen();
            ConcreteKitchen sIngredient = new ConcreteKitchen();

            // Sets the predefined observers available
            sKitchen.Attach(new ConcreteObserver(sKitchen, "Kitchen"));
            sIngredient.Attach(new ConcreteObserver(sIngredient, "Ingredient"));

            string ing, kitchen;

            Console.Write("Enter Country (SA/US): ");
            kitchen = Console.ReadLine();

            switch (kitchen)
            {
            // Changes the Kitchen observer to be kitchen location
            case "US": sKitchen.SubjectState = "US Kitchen"; break;

            case "us": sKitchen.SubjectState = "US Kitchen"; break;

            case "SA": sKitchen.SubjectState = "SA Kitchen"; break;

            case "sa": sKitchen.SubjectState = "SA Kitchen"; break;
            }
            //Goes through Subject class to ConcreteObserver class to output in the console window
            sKitchen.Notify();

            //Setting the Ingredient
            Console.Write("Choose Ingredient Taco/Burrito: ");
            ing = Console.ReadLine();
            switch (ing)
            {
            // Changes the Ingredient observer to be an ingredient type
            case "Taco": sIngredient.SubjectState = "Taco"; break;

            case "taco": sIngredient.SubjectState = "Taco"; break;

            case "Burrito": sIngredient.SubjectState = "Burrito"; break;

            case "burrito": sIngredient.SubjectState = "Burrito"; break;
            }
            //Goes through Subject class to ConcreteObserver class to output in the console window
            sIngredient.Notify();


            Console.WriteLine();
            Console.WriteLine();

            if (kitchen == "SA" || kitchen == "sa" || kitchen == "Sa")
            {
                if (ing == "Taco" || ing == "taco" || ing == "TACO")
                {
                    Taco saTaco = new Taco(new SAIngredientFactory());
                    Console.WriteLine($"SA Taco: {saTaco.DescribeTaco()}");
                    // ---------------------------- observer testing
                    Ingredient newIngredientSA = new Taco(new SAIngredientFactory());
                    string     userInputSA     = "Yes";
                    string     chosenFillingSA;
                    while (userInputSA == "Yes" || userInputSA == "yes" || userInputSA == "YES")
                    {
                        Console.Write("What filling do you want to add to your ingredient? ");
                        chosenFillingSA = Console.ReadLine();
                        switch (chosenFillingSA)
                        {
                        case "Chicken":
                        case "chicken":
                            newIngredientSA = new Chicken(newIngredientSA);
                            break;

                        case "Mutton":
                        case "mutton":
                            newIngredientSA = new Mutton(newIngredientSA);
                            break;

                        case "Samp":
                        case "samp":
                            newIngredientSA = new Samp(newIngredientSA);
                            break;

                        case "Cheddar Cheese":
                        case "cheddar cheese":
                        case "Cheddar cheese":
                            newIngredientSA = new CheddarCheese(newIngredientSA);
                            break;

                        case "Sliced Avocados":
                        case "sliced avocados":
                        case "Sliced avocados":
                            newIngredientSA = new SlicedAvocados(newIngredientSA);
                            break;

                        case "Jasmin Rice":
                        case "jasmin rice":
                        case "Jasmin rice":
                            newIngredientSA = new JasminRice(newIngredientSA);
                            break;

                        case "Refried Beans":
                        case "Refried beans":
                        case "refried beans":
                            newIngredientSA = new RefriedBeans(newIngredientSA);
                            break;

                        case "Smooth Cream Cheese":
                        case "smooth cream cheese":
                        case "Smooth Cream cheese":
                            newIngredientSA = new SmoothCreamCheese(newIngredientSA);
                            break;

                        case "Relish":
                        case "relish":
                            newIngredientSA = new Relish(newIngredientSA);
                            break;

                        case "Jalapeno Chilies":
                        case "jalapeno chilies":
                        case "Jalapeno chilies":
                            newIngredientSA = new JalapenoChilies(newIngredientSA);
                            break;
                        }// end switch
                        Console.Write("Do you want to add another filling to your ingredient? ");
                        userInputSA = Console.ReadLine();
                    } // end while loop
                    Console.WriteLine();
                    Console.WriteLine(newIngredientSA.GetDiscription() + " \tFinal Price: " + newIngredientSA.Cost().ToString("C"));
                    Console.WriteLine();
                    // ---------------------------- end observer testing
                }
                else if (ing == "Burrito" || ing == "burrito" || ing == "BURRITO")
                {
                    Burrito saBurrito = new Burrito(new SAIngredientFactory());
                    Console.WriteLine($"SA Burrito: {saBurrito.DescribeBurrito()}");
                    // ---------------------------- observer testing
                    Ingredient newIngredientSA = new Burrito(new SAIngredientFactory());
                    string     userInputSA     = "Yes";
                    string     chosenFillingSA;
                    while (userInputSA == "Yes" || userInputSA == "yes" || userInputSA == "YES")
                    {
                        Console.Write("What filling do you want to add to your ingredient? ");
                        chosenFillingSA = Console.ReadLine();
                        switch (chosenFillingSA)
                        {
                        case "Chicken":
                        case "chicken":
                            newIngredientSA = new Chicken(newIngredientSA);
                            break;

                        case "Mutton":
                        case "mutton":
                            newIngredientSA = new Mutton(newIngredientSA);
                            break;

                        case "Samp":
                        case "samp":
                            newIngredientSA = new Samp(newIngredientSA);
                            break;

                        case "Cheddar Cheese":
                        case "cheddar cheese":
                        case "Cheddar cheese":
                            newIngredientSA = new CheddarCheese(newIngredientSA);
                            break;

                        case "Sliced Avocados":
                        case "sliced avocados":
                        case "Sliced avocados":
                            newIngredientSA = new SlicedAvocados(newIngredientSA);
                            break;

                        case "Jasmin Rice":
                        case "jasmin rice":
                        case "Jasmin rice":
                            newIngredientSA = new JasminRice(newIngredientSA);
                            break;

                        case "Refried Beans":
                        case "Refried beans":
                        case "refried beans":
                            newIngredientSA = new RefriedBeans(newIngredientSA);
                            break;

                        case "Smooth Cream Cheese":
                        case "smooth cream cheese":
                        case "Smooth Cream cheese":
                            newIngredientSA = new SmoothCreamCheese(newIngredientSA);
                            break;

                        case "Relish":
                        case "relish":
                            newIngredientSA = new Relish(newIngredientSA);
                            break;

                        case "Jalapeno Chilies":
                        case "jalapeno chilies":
                        case "Jalapeno chilies":
                            newIngredientSA = new JalapenoChilies(newIngredientSA);
                            break;
                        }// end switch
                        Console.Write("Do you want to add another filling to your ingredient? ");
                        userInputSA = Console.ReadLine();
                    } // end while loop
                    Console.WriteLine();
                    Console.WriteLine(newIngredientSA.GetDiscription() + " \tFinal Price: " + newIngredientSA.Cost().ToString("C"));
                    Console.WriteLine();
                    // ---------------------------- end observer testing
                }
            }
            else if (kitchen == "US" || kitchen == "us" || kitchen == "Us")
            {
                if (ing == "Taco" || ing == "taco" || ing == "TACO")
                {
                    Taco usTaco = new Taco(new USIngredientFactory());
                    Console.WriteLine($"US Taco: {usTaco.DescribeTaco()}");
                    // ---------------------- observer testing start
                    Ingredient newIngredientUS = new Taco(new USIngredientFactory());
                    string     userInputUS     = "Yes";
                    string     chosenFillingUS;
                    while (userInputUS == "Yes" || userInputUS == "yes" || userInputUS == "YES")
                    {
                        Console.Write("What filling do you want to add to your ingredient? ");
                        chosenFillingUS = Console.ReadLine();
                        switch (chosenFillingUS)
                        {
                        case "Turkey":
                        case "turkey":
                            newIngredientUS = new Turkey(newIngredientUS);
                            break;

                        case "Beef":
                        case "beef":
                            newIngredientUS = new Beef(newIngredientUS);
                            break;

                        case "Chickpeas":
                        case "chickpeas":
                            newIngredientUS = new Chickpeas(newIngredientUS);
                            break;

                        case "Pepper Jack Cheese":
                        case "pepper jack cheese":
                        case "Pepper jack cheese":
                            newIngredientUS = new PepperJackCheese(newIngredientUS);
                            break;

                        case "Guacamole":
                        case "guacomole":
                            newIngredientUS = new Guacamole(newIngredientUS);
                            break;

                        case "Basmati Rice":
                        case "basmati rice":
                        case "Basmati rice":
                            newIngredientUS = new BasmatiRice(newIngredientUS);
                            break;

                        case "Black Beans":
                        case "black beans":
                        case "Black beans":
                            newIngredientUS = new BlackBeans(newIngredientUS);
                            break;

                        case "Chunky Cream Cheese":
                        case "chunky cream cheese":
                        case "Chunky Cream cheese":
                            newIngredientUS = new ChunkyCreamCheese(newIngredientUS);
                            break;

                        case "Salsa":
                        case "salsa":
                            newIngredientUS = new Salsa(newIngredientUS);
                            break;

                        case "Habanero Chilies":
                        case "habanero chilies":
                        case "Habanero chilies":
                            newIngredientUS = new HabaneroChilies(newIngredientUS);
                            break;
                        }// end switch
                        Console.Write("Do you want to add another filling to your ingredient? ");
                        userInputUS = Console.ReadLine();
                    } // end while loop
                    Console.WriteLine();
                    Console.WriteLine(newIngredientUS.GetDiscription() + " \tFinal Price: " + newIngredientUS.Cost().ToString("C"));
                    Console.WriteLine();
                    // ---------------------- observer testing end
                }
                else if (ing == "Burrito" || ing == "burrito" || ing == "BURRITO")
                {
                    Burrito usBurrito = new Burrito(new USIngredientFactory());
                    Console.WriteLine($"US Burrito: {usBurrito.DescribeBurrito()}");
                    // ---------------------- observer testing start
                    Ingredient newIngredientUS = new Burrito(new USIngredientFactory());
                    string     userInputUS     = "Yes";
                    string     chosenFillingUS;
                    while (userInputUS == "Yes" || userInputUS == "yes" || userInputUS == "YES")
                    {
                        Console.Write("What filling do you want to add to your ingredient? ");
                        chosenFillingUS = Console.ReadLine();
                        switch (chosenFillingUS)
                        {
                        case "Turkey":
                        case "turkey":
                            newIngredientUS = new Turkey(newIngredientUS);
                            break;

                        case "Beef":
                        case "beef":
                            newIngredientUS = new Beef(newIngredientUS);
                            break;

                        case "Chickpeas":
                        case "chickpeas":
                            newIngredientUS = new Chickpeas(newIngredientUS);
                            break;

                        case "Pepper Jack Cheese":
                        case "pepper jack cheese":
                        case "Pepper jack cheese":
                            newIngredientUS = new PepperJackCheese(newIngredientUS);
                            break;

                        case "Guacamole":
                        case "guacomole":
                            newIngredientUS = new Guacamole(newIngredientUS);
                            break;

                        case "Basmati Rice":
                        case "basmati rice":
                        case "Basmati rice":
                            newIngredientUS = new BasmatiRice(newIngredientUS);
                            break;

                        case "Black Beans":
                        case "black beans":
                        case "Black beans":
                            newIngredientUS = new BlackBeans(newIngredientUS);
                            break;

                        case "Chunky Cream Cheese":
                        case "chunky cream cheese":
                        case "Chunky Cream cheese":
                            newIngredientUS = new ChunkyCreamCheese(newIngredientUS);
                            break;

                        case "Salsa":
                        case "salsa":
                            newIngredientUS = new Salsa(newIngredientUS);
                            break;

                        case "Habanero Chilies":
                        case "habanero chilies":
                        case "Habanero chilies":
                            newIngredientUS = new HabaneroChilies(newIngredientUS);
                            break;
                        }// end switch
                        Console.Write("Do you want to add another filling to your ingredient? ");
                        userInputUS = Console.ReadLine();
                    } // end while loop
                    Console.WriteLine();
                    Console.WriteLine(newIngredientUS.GetDiscription() + " \tFinal Price: " + newIngredientUS.Cost().ToString("C"));
                    Console.WriteLine();
                    // ---------------------- observer testing end
                }
            }

            Console.ReadLine();
        }