示例#1
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);
            });
        }
示例#2
0
        public void FülleIrgendwasEin(FlexiblerCode flexiblerCode)
        {
            if (_ausgewählteMaschine == null)
            {
                FehlerFall?.Invoke(this, new FehlerEventArgs($"Keine Maschine ausgewählt"));
                return;
            }


            //Flexiblen Code ausführen
            if (!flexiblerCode())
            {
                return;
            }

            labelKaffeebeschreibung.Text = _ausgewählteMaschine.ToString();
        }
示例#3
0
        private void buttonZubereitung_Click(object sender, EventArgs e)
        {
            if (_ausgewählteMaschine == null)
            {
                FehlerFall?.Invoke(this, new FehlerEventArgs("Keine Maschine ausgewählt!"));
                return;
            }
            //Prüfen ob die richtige Maschine ausgewählt wurde passend zur Bestellung
            if (_bestellteSorte != _ausgewählteMaschine.GetType())
            {
                FehlerFall?.Invoke(this, new FehlerEventArgs("Falsche Maschine ausgewählt!"));
                return;
            }

            if (_ausgewählteMaschine.BereiteKaffeeZu(_bestellteMenge))
            {
                MessageBox.Show("Kaffee wurde zubereitet!");
                _score += 5;
                BestelleNeuenKaffee();
            }

            labelKaffeebeschreibung.Text = _ausgewählteMaschine.ToString();
        }
示例#4
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);
     });
 }
示例#5
0
        private void buttonMilch_Click(object sender, EventArgs e)
        {
            FülleIrgendwasEin(() => {
                if (!prüfeNumerischenWert(textBoxMilch, out int milchmenge, "Milchmenge"))
                {
                    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 IMilchEinfüllbar)
                {
                    IMilchEinfüllbar einfüllbareMaschine = (IMilchEinfüllbar)_ausgewählteMaschine;
                    einfüllbareMaschine.Milchstand      += milchmenge;
                }
                else
                {
                    FehlerFall?.Invoke(this, new FehlerEventArgs($"Das ist kein Vollautomat!"));
                    return(false);
                }
                return(true);
            });
        }
示例#6
0
 private bool prüfeNumerischenWert(TextBox textbox, out int wert, string art)
 {
     wert = 0;
     try
     {
         wert = int.Parse(textbox.Text);
     }
     catch (FormatException exp)
     {
         FehlerFall?.Invoke(this, new FehlerEventArgs($"Die {art} {textBoxWasser.Text} ist keine gültige ganze Zahl."));
         return(false);
     }
     catch (OverflowException exp)
     {
         FehlerFall?.Invoke(this, new FehlerEventArgs($"Die {art} ist zu groß!"));
         return(false);
     }
     catch (Exception exp)
     {
         FehlerFall?.Invoke(this, new FehlerEventArgs(exp.Message));
         return(false);
     }
     return(true);
 }