Example #1
0
        //Konstruktor
        public Form1()
        {
            InitializeComponent();
            //ListBox mit Werten befüllen
            #region Automatisiertes Hinzufügen der Enum_Werte
            //foreach (var item in Enum.GetValues(typeof(KaffeemaschinenArten)))
            //{
            //    listBoxKaffeemaschine.Items.Add(item);
            //}
            #endregion Automatisierte Variante

            listBoxKaffeemaschine.Items.Add(KaffeemaschinenArten.Filtermaschine);
            listBoxKaffeemaschine.Items.Add(KaffeemaschinenArten.PadMaschine);
            listBoxKaffeemaschine.Items.Add(KaffeemaschinenArten.Vollautomat);

            //Kaffeemaschinen erzeugen
            _filtermaschine = new FilterMaschine("Filtermaschine", 1000, 1000);
            _padmaschine    = new PadMaschine("Padmaschine", 1000);
            _vollautomat    = new Vollautomat("Vollautomat", 1000, 1000, 1000);

            //EventHandler für Bedienungsfehler-Event registrieren
            _filtermaschine.Bedienungsfehler += Bedienungsfehler_Handler;
            _padmaschine.Bedienungsfehler    += Bedienungsfehler_Handler;
            _vollautomat.Bedienungsfehler    += Bedienungsfehler_Handler;

            //EventHandler für FehlerFall-Event registrieren
            FehlerFall += Bedienungsfehler_Handler;

            //1. Bestellung
            BestelleNeuenKaffee();
        }
Example #2
0
        private void buttonKaffee_Click(object sender, EventArgs e)
        {
            FülleIrgendwasEin(() =>
            {
                if (!prüfeNumerischenWert(textBoxKaffee, out int kaffeemenge, "Kaffeemenge"))
                {
                    return(false);
                }

                #region Umständliche und fehleranfälligere Variante die Kaffeemaschinenart zu prüfen
                //if(_ausgewählteMaschine.GetType() == typeof(FilterMaschine) || _ausgewählteMaschine.GetType() == typeof(Vollautomat))
                #endregion
                if (_ausgewählteMaschine is FilterMaschine)
                {
                    FilterMaschine filter = (FilterMaschine)_ausgewählteMaschine;
                    filter.Kaffeestand   += kaffeemenge;
                }
                else
                {
                    FehlerFall?.Invoke(this, new FehlerEventArgs("Das ist keine Filtermaschine!"));
                    return(false);
                }
                return(true);
            });
        }
Example #3
0
        public void TesteWasserstand()
        {
            PadMaschine padmaschine = new PadMaschine("Pad1", 1000);

            padmaschine.Wasserstand += 500;
            Assert.AreEqual(500, padmaschine.Wasserstand);

            Vollautomat vollmaschine = new Vollautomat("Milch", 1000, 500, 500);

            vollmaschine.Milchstand += 600;
            Assert.AreEqual(vollmaschine.Milchkapazität, vollmaschine.Milchstand);


            //Polymorphie
            Kaffeemaschine kaffeemaschine = new FilterMaschine("Filter1", 1000, 1000);

            kaffeemaschine.Wasserstand += 2000;
            if (kaffeemaschine.Wasserstand > kaffeemaschine.Wasserkapazität)
            {
                Assert.Fail();
            }

            //Kaffeestand testen
            FilterMaschine filtermaschine = (FilterMaschine)kaffeemaschine;

            filtermaschine.Kaffeestand += 1200;
            if (filtermaschine.Kaffeestand > filtermaschine.Kaffeekapazität)
            {
                Assert.Fail();
            }


            Kaffeemaschine[] maschinen = new Kaffeemaschine[] { padmaschine, vollmaschine, filtermaschine };

            foreach (Kaffeemaschine maschine in maschinen)
            {
                Console.WriteLine(maschine.Wasserstand);
                //prüft auf FIltermaschine oder abgeleitete Klasse davon (Vollautomat)
                if (maschine is FilterMaschine)
                {
                    FilterMaschine fm = (FilterMaschine)maschine;
                    Console.WriteLine(fm.Kaffeestand);
                }

                //prüft nur auf Filtermaschine
                if (maschine.GetType() == typeof(FilterMaschine))
                {
                }
            }
        }