예제 #1
0
        private static IBeverage AskForCondiments(IBeverage beverage)
        {
            var modifiedBeverage = beverage;
            char key = ' ';
            while(key != 'd')
            {
                Console.WriteLine(String.Format("You now have a {0}.", modifiedBeverage.Name));
                Console.WriteLine();
                Console.WriteLine("Would you like some condiments?");
                Console.WriteLine();
                Console.WriteLine("w: Whipped Cream");
                Console.WriteLine("s: Soy Milk");
                Console.WriteLine("v: Vanilla");
                Console.WriteLine("r: Remove the last one");
                Console.WriteLine("d: Done");
                key = Console.ReadKey().KeyChar;
                Console.WriteLine();
                Console.WriteLine();
                switch (key)
                {
                    case 'w':
                        modifiedBeverage = new WhippedCream(modifiedBeverage);
                        break;
                    case 'v':
                        modifiedBeverage = new VanillaSyrup(modifiedBeverage);
                        break;
                    case 's':
                        modifiedBeverage = new SoyMilk(modifiedBeverage);
                        break;
                    case 'r':
                        if (modifiedBeverage is CondimentDecorator)
                        {
                            modifiedBeverage = ((CondimentDecorator)modifiedBeverage).TheBeverage;
                        }
                        break;
                }
            }

            return modifiedBeverage;
        }
예제 #2
0
 public Milk(IBeverage BaseBeverage) : base(BaseBeverage)
 {
 }
예제 #3
0
 public Cream(IBeverage beverage)
     : base(beverage)
 {
 }
예제 #4
0
 /// <summary>
 /// Цена - 15
 /// </summary>
 public static IBeverage AddSyrup(this IBeverage beverage, SyrupType syrupType)
 {
     return(new Syrup(beverage, syrupType));
 }
예제 #5
0
 /// <summary>
 /// Цена - 10 * quantity
 /// </summary>
 public static IBeverage AddLemon(this IBeverage beverage, uint quantity = 1)
 {
     return(new Lemon(beverage, quantity));
 }
예제 #6
0
 public SugarDecorator(IBeverage beverage)
 {
     DecoratedBeverage = beverage;
 }
예제 #7
0
 // TODO: this should use a concrete type
 /// <summary>
 /// Initializes a new instance of the DrinkOperator class.
 /// </summary>
 /// <param name="avatar">The avatar performing the action</param>
 /// <param name="beverage">The beverage that will be consumed</param>
 public DrinkOperator(Avatar avatar, IBeverage beverage)
 {
     _beverage = beverage;
     _avatar = avatar;
 }
예제 #8
0
 public SoyMilk(IBeverage beverage)
     : base(beverage)
 {
 }
예제 #9
0
 public Chocolate(IBeverage BaseBeverage) : base(BaseBeverage)
 {
 }
예제 #10
0
 public Mocha(IBeverage beverage) : base(beverage)
 {
 }
예제 #11
0
 public Milk(IBeverage beverage)
 {
     _beverage = beverage;
 }
예제 #12
0
 public override string Prepare(IBeverage b)
 => $"Added syrup.\n{base.Prepare(b)}";
예제 #13
0
 public ChocolateCrumbs(IBeverage beverage, uint mass)
     : base(beverage)
 {
     _mass = mass;
 }
예제 #14
0
 public WhipDecorator(IBeverage beverage) : base(beverage)
 {
 }
예제 #15
0
 public string Post(IBeverage bev)
 {
     string value = bev.ToString();
     return string.Format("Beverage: {0}, Response: ({1})", bev.Name, value);
     // Moet de return value hiervan ook een Bundle worden?
 }
예제 #16
0
 public Whip(IBeverage beverage) : base(beverage)
 {
 }
예제 #17
0
 public Whip(IBeverage beverage)
 {
     this.beverage = beverage;
 }
예제 #18
0
 public BeverageWithSugar(IBeverage beverage)
 {
     _beverage = beverage;
 }
예제 #19
0
 public VanillaSyrup(IBeverage beverage)
     : base(beverage)
 {
 }
예제 #20
0
        public string PutTogether(IBeverage beverage)
        {
            var result = beverage.GetBeverage();

            return($"Cup for Latte with the {result}");
        }
예제 #21
0
 public Soy(IBeverage beverage)
 {
     this.beverage = beverage;
 }
예제 #22
0
 public SoyDecorator(IBeverage beverage) : base(beverage)
 {
 }
예제 #23
0
 /// <summary>
 /// Цена - iceCubeType * quantity. IceCubeType.Dry = 10, IceCubeType.Water = 5
 /// </summary>
 public static IBeverage AddIceCubes(this IBeverage beverage, uint quantity, IceCubeType iceCubeType = IceCubeType.Water)
 {
     return(new IceCubes(beverage, quantity, iceCubeType));
 }
예제 #24
0
 public Syrup(IBeverage beverage, SyrupType syrupType)
     : base(beverage)
 {
     _syrupType = syrupType;
 }
예제 #25
0
 /// <summary>
 /// Цена - 50
 /// </summary>
 public static IBeverage AddLiquor(this IBeverage beverage, LiquorType liquorType)
 {
     return(new Liquor(beverage, liquorType));
 }
예제 #26
0
 public Milk(IBeverage beverage) : base(beverage)
 {
 }
예제 #27
0
 public Milk(IBeverage beverage)
 {
     Beverage = beverage;
     Size     = beverage.Size;
 }
예제 #28
0
 public Whip(IBeverage beverage)
     : base(beverage)
 {
     this.description = "鮮奶油";
     this.price       = .25;
 }
예제 #29
0
 public BigPortion(IBeverage beverage) : base(beverage)
 {
     _prefix  = "Big";
     _percent = 0.30;
 }
예제 #30
0
 public IceCubes(IBeverage beverage, uint quantity, IceCubeType type = IceCubeType.Water)
     : base(beverage)
 {
     m_quantity = quantity;
     m_type     = type;
 }
예제 #31
0
 public MochaDecorator(IBeverage beverage) : base(beverage)
 {
 }
예제 #32
0
 public Soy(IBeverage beverage)
 {
     _beverage = beverage;
 }
예제 #33
0
 public Vanilla(IBeverage beverage)
 {
     this.beverage = beverage;
 }
예제 #34
0
 public Whip(IBeverage beverage)
 {
     _beverage = beverage;
 }
예제 #35
0
 public WhippedCream(IBeverage beverage)
     : base(beverage)
 {
 }
예제 #36
0
 /// <summary>
 /// Цена - 2 умноженное на mass
 /// </summary>
 public static IBeverage AddChocolateCrumbs(this IBeverage beverage, uint mass)
 {
     return(new ChocolateCrumbs(beverage, mass));
 }
예제 #37
0
 protected CondimentDecorator(IBeverage beverage)
 {
     TheBeverage = beverage;
 }
예제 #38
0
 /// <summary>
 /// Цена - 10 умноженное на quantity(максимум 5)
 /// </summary>
 public static IBeverage AddChocolateSlices(this IBeverage beverage, uint quantity)
 {
     return(new ChocolateSlices(beverage, quantity));
 }
예제 #39
0
 /// <summary>
 /// Constructor for Milk Decorator
 /// </summary>
 /// <param name="beverage"></param>
 public MilkDecorator(IBeverage beverage)
 {
     DecoratedBeverage = beverage;
 }
예제 #40
0
 /// <summary>
 /// Цена - 20
 /// </summary>
 public static IBeverage AddCinnamon(this IBeverage beverage)
 {
     return(new Cinnamon(beverage));
 }
예제 #41
0
 public Mocha(IBeverage beverage)
 {
     this.beverage = beverage;
 }
예제 #42
0
 /// <summary>
 /// Цена = mass
 /// </summary>
 public static IBeverage AddCoconutFlakes(this IBeverage beverage, uint mass)
 {
     return(new CoconutFlakes(beverage, mass));
 }
예제 #43
0
 /// <summary>
 /// Attempt to drink the given object
 /// </summary>
 /// <param name="beverage"></param>
 /// <returns>An object used to complete the operation</returns>
 public DrinkOperator Drink(IBeverage beverage)
 {
     return new DrinkOperator(this, beverage);
 }
예제 #44
0
 /// <summary>
 /// Цена - 25
 /// </summary>
 public static IBeverage AddCream(this IBeverage beverage)
 {
     return(new Cream(beverage));
 }