public IDrink CreateDrink(string drinkName, IEnumerable <string> options) { IDrink drink = GetDrink(drinkName); if (drinkName == "Special") { options = ((SpecialCoffeeAdapter)drink).GetOptions(_specialCoffee).ToList(); } if (drinkName == "Tea") { ((TeaAdapter)drink).SetTeaBlend(_teaBlend); } List <string> configurations = options.ToList(); for (int i = 0; i < configurations.Count; i++) { switch (configurations[i]) { case "Sugar": drink = new SugarDrinkDecorator(drink, _sugarAmount); break; case "Milk": drink = new MilkDrinkDecorator(drink, _milkAmount); break; case "Whippedcream": drink = new WhippedcreamDrinkDecorator(drink); break; case "Coffee": drink = new CoffeeDrinkDecorator(drink, _drinkStrength); break; case "Whiskey": drink = new WiskeyDrinkDecorator(drink); break; case "Cointreau": drink = new CointreauDrinkDecorator(drink); break; case "Amaretto": drink = new AmarettoDrinkDecorator(drink); break; case "Cognac": drink = new CognacDrinkDecorator(drink); break; default: drink = new MissingIngrediëntDrinkDecorator(drink); break; } } return(drink); }
public IDrink CreateDrink(string name, Strength strength, Amount sugarAmount, Amount milkAmount, bool hasSugar, bool hasMilk, string blendname, string special) { IDrink drink = new Drink(name, strength); if (hasSugar) { drink = new SugarDecorator(drink, sugarAmount); } if (hasMilk) { drink = new MilkDecorator(drink, milkAmount); } switch (drink.Name) { case CAFEAULAIT: drink = new CafeAuLaitDecorator(drink); break; case CAPPUCCINO: drink = new CappuccinoDecorator(drink); break; case COFFEE: drink = new CoffeeDrinkDecorator(drink); break; case ESPRESSO: drink = new EspressoDecorator(drink); break; case WIENERMELANGE: drink = new WienerMelangeDecorator(drink); break; case CHOCOLATE: drink = new HotChocolateDecorator(drink, false); break; case DELUXE: drink = new HotChocolateDecorator(drink, true); break; case TEA: drink = new TeaDecorator(drink, blendname); break; case SPECIAL: drink = new SpecialCoffeeDecorator(drink, special); break; } return(drink); }
public IDrink CreateDrink(string option, bool hasSugar, bool hasMilk, Amount sugarAmount, Amount milkAmount, Strength drinkStrength, string blendName = "") { IDrink newDrink = new Drink(hasSugar, hasMilk, sugarAmount, milkAmount, drinkStrength); switch (option) { case "Coffee": newDrink = new CoffeeDrinkDecorator(newDrink); break; case "Café au Lait": newDrink = new CafeAuLaitDrinkDecorator(newDrink); break; case "Capuccino": newDrink = new CappuccinoDrinkDecorator(newDrink); break; case "Espresso": newDrink = new EspressoDrinkDecorator(newDrink); break; case "Wiener Melange": newDrink = new WienerMelangeDrinkDecorator(newDrink); break; case "Chocolate": newDrink = new ChocolateDrinkDecorator(newDrink, false); break; case "Chocolate Deluxe": newDrink = new ChocolateDrinkDecorator(newDrink, true); break; case "Tea": newDrink = new TeaDrinkDecorator(newDrink, blendName); break; default: break; } return(newDrink); }