// Using List casting, just to exercise
        public List <Product> Deliver(ProductsNames productName)
        {
            Random         _rnd     = new Random();
            var            quantity = _rnd.Next(3);
            List <Product> _goods   = new List <Product> {
            };

            for (int i = 0; i <= quantity; i++)
            {
                switch (productName)
                {
                case ProductsNames.Apple:
                    _goods.Add(new Apple());
                    break;

                case ProductsNames.Kombucha:
                    _goods.Add(new Kombucha());
                    break;

                case ProductsNames.Salad:
                    _goods.Add(new Salad());
                    break;
                }
            }
            return(_goods);
        }
예제 #2
0
        public static Product CreateProduct(ProductsNames productType)
        {
            switch (productType)
            {
            case ProductsNames.Water:
                return(new Water(20, ProductsGroups.Drink, new List <Supplement> {
                    new Suggar(10)
                }));

            case ProductsNames.Espresso:
                return(new Espresso(50, ProductsGroups.Drink, new List <Supplement> {
                    new Syrup(10), new Milk(15), new Suggar(10)
                }));

            case ProductsNames.Latte:
                return(new Latte(70, ProductsGroups.Drink, new List <Supplement> {
                    new Syrup(10), new Suggar(10)
                }));

            case ProductsNames.Cappuccino:
                return(new Cappuccino(80, ProductsGroups.Drink, new List <Supplement> {
                    new Syrup(10), new Suggar(10)
                }));

            case ProductsNames.BlackTea:
                return(new BlackTea(25, ProductsGroups.Drink, new List <Supplement> {
                    new Milk(15), new Suggar(10)
                }));

            case ProductsNames.GreenTea:
                return(new GreenTea(25, ProductsGroups.Drink, new List <Supplement> {
                    new Milk(15), new Suggar(10)
                }));

            case ProductsNames.Bread:
                return(new Bread(10, ProductsGroups.Food, new List <Supplement> {
                    new Cheese(18), new Ham(25), new Jam(10)
                }));

            case ProductsNames.Bun:
                return(new Bun(10, ProductsGroups.Food, new List <Supplement> {
                    new Cheese(18), new Ham(25), new Jam(10)
                }));

            case ProductsNames.Chips:
                return(new Chips(45, ProductsGroups.Food));

            case ProductsNames.Cookies:
                return(new Cookies(29, ProductsGroups.Food, new List <Supplement> {
                    new Jam(10)
                }));

            default:
                throw new ArgumentException("This is unknown product type.");
            }
        }