Esempio n. 1
0
 public Coffee(
     CoffeeKind kind,
     int strength,
     CoffeeSize size)
 {
     Kind     = kind;
     Strength = strength;
     Size     = size;
 }
Esempio n. 2
0
        public Coffee(
            CoffeeKind kind,
            int strength,
            CoffeeSize size,
            string customerName)
        {
            Kind         = kind;
            Strength     = strength;
            Size         = size;
            CustomerName = customerName;

            CoffeesCreated++;
        }
        /// <summary>
        /// Brew coffe
        /// </summary>
        /// <param name="kind">Kind of coffee</param>
        /// <returns></returns>
        public Coffee BrewCoffee(CoffeeKind kind)
        {
            switch (kind)
            {
            case CoffeeKind.Expresso:
                return(BrewExpresso());

            case CoffeeKind.Latte:
                return(BrewLatte());

            case CoffeeKind.Americana:

                return(BrewAmericana());

            default:
                return(new Coffee("Unknown"));
            }
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            var served = new Dictionary <(CoffeeKind kind, CoffeeSize size, int strength), int>();

            void Serve(string customerName, CoffeeKind kind, CoffeeSize size, int strength)
            {
                Console.WriteLine($"Serving a {size} {kind} of strength {strength} to {customerName}");

                var key = (kind, size, strength);

                if (served.ContainsKey(key) == false)
                {
                    served[key] = 1;
                }
                else
                {
                    served[key]++;
                }
            }

            void PrintSummary() => served
            .OrderByDescending(kv => kv.Value)
            .ThenBy(kv => kv.Key.kind)
            .ThenByDescending(kv => kv.Key.size)
            .ThenByDescending(kv => kv.Key.strength)
            .Select(kv => $"Served {kv.Value} {kv.Key.size} {kv.Key.kind} of strength {kv.Key.strength}")
            .ToList()
            .ForEach(Console.WriteLine)
            ;

            RandomHelper helper = new RandomHelper();

            for (int i = 0; i < 100; i++)
            {
                CoffeeKind kind     = helper.GetRandomCoffeeKind();
                CoffeeSize size     = helper.GetRandomCoffeeSize();
                int        strength = helper.GetRandomCoffeeStrength();

                Serve(helper.GetRandomName(), kind, size, strength);
            }

            Console.WriteLine();
            PrintSummary();
        }
Esempio n. 5
0
        static void Main(string[] args)
        {
            void Serve(string customerName, CoffeeKind kind, CoffeeSize size, int strength)
            {
                Console.WriteLine($"Serving a {size} {kind} of strength {strength} to {customerName}");
            }

            RandomHelper helper = new RandomHelper();

            for (int i = 0; i < 100; i++)
            {
                CoffeeKind kind     = helper.GetRandomCoffeeKind();
                CoffeeSize size     = helper.GetRandomCoffeeSize();
                int        strength = helper.GetRandomCoffeeStrength();

                Serve(helper.GetRandomName(), kind, size, strength);
            }

            Console.WriteLine();
        }
Esempio n. 6
0
 public PremiumCoffeeMachineAdapter(PremiumCoffeeMachine coffeeMachine, CoffeeKind coffeeKind)
 {
     this.coffeeMachine = coffeeMachine;
     this.coffeeKind    = coffeeKind;
 }