예제 #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();
        }
예제 #2
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))
                {
                }
            }
        }
예제 #3
0
        //Konstruktor
        public Form1()
        {
            InitializeComponent();

            random = new Random();
            listboxKaffeemaschine.Items.Add(Kaffeearten.Filterkaffee);
            listboxKaffeemaschine.Items.Add(Kaffeearten.Espresso);
            listboxKaffeemaschine.Items.Add(Kaffeearten.Cappuccino);

            espressoMaschine   = new PadMaschine("Nespresso");
            cappuccinoMaschine = new Vollautomat("Cappu-Deluxe");
            cappuccinoMaschine.BaueMilchbehälterEin(3, 300);
            filterkaffeeMaschine = new MahlMaschine("Melitta");

            //Event-Registrierung
            espressoMaschine.Störung     += StörungsBehandlung;
            cappuccinoMaschine.Störung   += StörungsBehandlung;
            filterkaffeeMaschine.Störung += StörungsBehandlung;

            labelCountdown.Text = COUNTDOWN_START.ToString();

            //Erste Bestellung erstellen
            NeueBestellungErstellen();
        }
예제 #4
0
        private void button2_Click(object sender, EventArgs e)
        {
            if (aktuelleMaschine is PadMaschine)
            {
                //as hat den gleichen Effekt wie (PadMaschine)aktuelleMaschine
                //Einziger Unterschied: Wenn das Casting fehlschlägt, stürzt
                //das Programm nicht ab, sondern es wird null zurückgegeben
                PadMaschine padmaschine = aktuelleMaschine as PadMaschine;

                if (padmaschine.PadVorhanden)
                {
                    MessageBox.Show("Da liegt schon ein Pad drin!");
                }
                else
                {
                    padmaschine.PadVorhanden        = true;
                    labelMaschinenBeschreibung.Text = aktuelleMaschine.ToString();
                }
            }
            else
            {
                MessageBox.Show("Das ist keine PadMaschine!");
            }
        }
예제 #5
0
 private void buttonPad_Click(object sender, EventArgs e)
 {
     FülleIrgendwasEin(() =>
     {
         #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 PadMaschine)
         {
             PadMaschine padmaschine = (PadMaschine)_ausgewählteMaschine;
             if (padmaschine.PadEingelegt)
             {
                 return(false);
             }
             padmaschine.PadEingelegt = true;
         }
         else
         {
             FehlerFall?.Invoke(this, new FehlerEventArgs("Keine PadMaschine ausgewählt!"));
             return(false);
         }
         return(true);
     });
 }