Ejemplo n.º 1
0
        public virtual string  Zubereiten(string rezeptName, out bool erledigt, IProgress <int> progress = null)
        {
            progress?.Report(0);

            erledigt = false;

            Rezept gewuenschtesRezept =
                RezeptList.Where(r => r.Name == rezeptName)
                .FirstOrDefault();

            if (gewuenschtesRezept == null)
            {
                return($"{rezeptName} leider nicht verfügbar");
            }

            Task.Delay(500).Wait();
            progress?.Report(20);

            //Überprüfen, ob für alle Zutaten ein passender Behälter mit genügend Inhalt vorhanden ist.

            bool alleZutatenInAusreichenderMengeVorhanden =
                gewuenschtesRezept.ZutatenListe
                .All(zutat => BehaelterListe.Any(b =>
                                                 (b.Typ == zutat.Key) && (b.Fuellstand >= zutat.Value)));

            if (!alleZutatenInAusreichenderMengeVorhanden)
            {
                return($"Nicht alle Zutaten für {rezeptName} vorhanden");
            }

            Task.Delay(500).Wait();
            progress?.Report(40);

            foreach (KeyValuePair <Inhaltsstoff, int> zutat in gewuenschtesRezept.ZutatenListe)
            {
                BehaelterListe
                .FirstOrDefault(b => b.Typ == zutat.Key)?
                .Entnehmen(zutat.Value);
            }

            erledigt = true;

            Task.Delay(1500).Wait();
            progress?.Report(100);


            return($"{rezeptName} bereit.");
        }
Ejemplo n.º 2
0
        public static Automat ErstelleStandardAutomat()
        {
            Automat a = new Automat();

            a.BehaelterListe.Add(new Behaelter(Inhaltsstoff.Kaffee));
            a.BehaelterListe.Add(new Behaelter(Inhaltsstoff.Kakao));
            a.BehaelterListe.Add(new Behaelter(Inhaltsstoff.Milch));
            a.BehaelterListe.Add(new Behaelter(Inhaltsstoff.Wasser));

            Rezept r;

            r = new Rezept("Kaffee");
            r.ZutatenListe.Add(Inhaltsstoff.Wasser, 15);
            r.ZutatenListe.Add(Inhaltsstoff.Kaffee, 5);
            a.RezeptList.Add(r);

            r = new Rezept("Milchkaffee");
            r.ZutatenListe.Add(Inhaltsstoff.Wasser, 10);
            r.ZutatenListe.Add(Inhaltsstoff.Kaffee, 5);
            r.ZutatenListe.Add(Inhaltsstoff.Milch, 5);
            a.RezeptList.Add(r);

            r = new Rezept("Espresso");
            r.ZutatenListe.Add(Inhaltsstoff.Wasser, 5);
            r.ZutatenListe.Add(Inhaltsstoff.Kaffee, 15);
            a.RezeptList.Add(r);

            r = new Rezept("Cappuccino");
            r.ZutatenListe.Add(Inhaltsstoff.Wasser, 5);
            r.ZutatenListe.Add(Inhaltsstoff.Kaffee, 5);
            r.ZutatenListe.Add(Inhaltsstoff.Milch, 5);
            r.ZutatenListe.Add(Inhaltsstoff.Kakao, 5);
            a.RezeptList.Add(r);

            foreach (Behaelter b in a.BehaelterListe)
            {
                b.Fuellen();
            }

            return(a);
        }