コード例 #1
0
        private void SpeichernButton_Click(object sender, RoutedEventArgs e)
        {
            //Die Eingaben für die Kategorien
            List <(int, string)> werte = new List <(int, string)>();

            for (int i = 0; i < Main.kategorien.Count; i++)
            {
                TextBox aktuellesObject = FindName("tb" + Main.kategorien[i].kategorie.MakeValid()) as TextBox;
                werte.Add((Main.kategorien[i].id, aktuellesObject.Text));
            }

            bool istGala = (StackPanelPflanzenAnlegung.FindName("galaCheckBox") as CheckBox).IsChecked.Value;
            bool istZier = (StackPanelPflanzenAnlegung.FindName("zierCheckBox") as CheckBox).IsChecked.Value;

            Main.api_anbindung.PflanzeErstellen(istGala, istZier, werte);
            Main.pflanzen = Main.api_anbindung.Bekommen <Pflanze>();

            //Lädt die Bilder aus den Dateien und lädt sie hoch
            foreach (string s in bilder)
            {
                byte[] b = File.ReadAllBytes(s);
                Main.api_anbindung.BildHochladen(Main.pflanzen[Main.pflanzen.Length].id_pflanze, b);
            }

            bilder = new List <string>();

            MessageBox.Show("Gespeichert!");
            MainWindow.changeContent(new Administration());
        }
        private void AusloggenButton_Click(object sender, RoutedEventArgs e)
        {
            MessageBoxResult messageBoxResult = MessageBox.Show("Sind Sie sich sicher?", "Abmelde-Bestätigung", MessageBoxButton.YesNo);

            if (messageBoxResult == MessageBoxResult.Yes)
            {
                Main.benutzer = null;
                MainWindow.changeContent(new Anmeldung());
            }
        }
        private void Weiter_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            Main.einzelStatistiken[Main.momentanePflanzeAusQuiz]           = new StatistikPflanze();
            Main.einzelStatistiken[Main.momentanePflanzeAusQuiz].antworten = new StatistikPflanzeAntwort[Main.quiz[Main.momentanePflanzeAusQuiz].pflanze.kategorien.Length - 1];

            //Antworten speichern
            for (int i = 0; i < Main.einzelStatistiken[Main.momentanePflanzeAusQuiz].antworten.Length; i++)
            {
                string eingabe = ((TextBox)FindName(Main.kategorien[i].kategorie + "TextBox")).Text;

                /*  if(string.IsNullOrWhiteSpace(eingabe))
                 * {
                 *    eingabe = "kеine Eingabe gemacht!";
                 * } */// Soll prüfungsvorbereitend sein und da sagt dir auch keiner wenn du ein Feld nicht ausgefüllt hast.

                Main.quiz[Main.momentanePflanzeAusQuiz].pflanze.kategorien[i].gegebeneAntwort = eingabe;

                Main.einzelStatistiken[Main.momentanePflanzeAusQuiz].antworten[i] = new StatistikPflanzeAntwort();

                //Einzelstatistik speichern
                Main.einzelStatistiken[Main.momentanePflanzeAusQuiz].antworten[i].eingabe             = eingabe;
                Main.einzelStatistiken[Main.momentanePflanzeAusQuiz].antworten[i].korrekt             = Main.quiz[Main.momentanePflanzeAusQuiz].pflanze.kategorien[i].antwort;
                Main.einzelStatistiken[Main.momentanePflanzeAusQuiz].antworten[i].kategorie           = Main.quiz[Main.momentanePflanzeAusQuiz].pflanze.kategorien[i].kategorie_name;
                Main.einzelStatistiken[Main.momentanePflanzeAusQuiz].antworten[i].WirdFürWerkGewertet = Main.quiz[Main.momentanePflanzeAusQuiz].pflanze.kategorien[i].wirdFürWerkGewertet;
            }
            //Speichere ID weitere Daten für die Einzelstatistik
            Main.einzelStatistiken[Main.momentanePflanzeAusQuiz].id_pflanze = Main.quiz[Main.momentanePflanzeAusQuiz].pflanze.id_pflanze;

            if (Main.momentanePflanzeAusQuiz >= Main.quiz.Length - 1)
            {
                //Quiz ist zu Ende. Ergebnisse in Datenbank speichern
                Main.quizTimer.Stop();
                Main.LadeStatistikenHoch();
                Main.LadeStatistiken();
                Main.azubiStatistik = Main.azubiStatistiken[Main.azubiStatistiken.Length - 1];

                Main.azubiStatistik = Main.api_anbindung.BekommeStatistik(Main.azubiStatistik.id_statistik);

                //Ergebnisse anzeigen
                Main.momentanePflanzeAusQuiz = -1;

                Main.momentanePflanzeAusStatistik = 0;

                //MainWindow.changeContent(new QuizStatistik());
                MainWindow.changeContent(new AdminQuizStatistik());
            }
            else
            {
                //Quiz ist nicht zu Ende. Nächste Pflanze anzeigen
                MainWindow.changeContent(new QuizBildanzeige());
            }
        }
        private void AnsehenButton_Click(object sender, RoutedEventArgs e)
        {
            Main.azubiStatistik = Main.azubiStatistiken[listView.SelectedIndex];
            Main.azubiStatistik = Main.api_anbindung.BekommeStatistik(Main.azubiStatistik.id_statistik);

            if (Main.azubiStatistik.pflanzen.Length > 0)
            {
                Main.momentanePflanzeAusStatistik = 0;
                MainWindow.changeContent(new AdminQuizStatistik());
            }
            else if (Main.azubiStatistik != null)
            {
                MessageBox.Show("Die gewählte Statistik enthält keine Pflanzen");
            }
        }
        private void ZufälligesQuizButton_Click(object sender, RoutedEventArgs e)
        {
            MainWindow.StartLoading();
            Main.ZufälligesQuizBekommen();

            Main.Laden();

            if (!Main.quiz.IsNullOrEmpty())
            {
                Main.quizAngefangenZeit = DateTime.Now;
                Main.quizTimer.Start();

                ////Das erste Pflanzenbild anzeigen
                MainWindow.changeContent(new QuizBildanzeige());
                //MainWindow.changeContent(new QuizDateneingabe());
            }
        }
 private void Bearbeiten_Click(object sender, RoutedEventArgs e)
 {
     //Bearbeiten der Azubis
     if (azubiReiter)
     {
         Azubis auswahl = null;
         if (Azubiliste.SelectedItem == null)
         {
             MessageBox.Show("Niemanden ausgewählt!");
         }
         else
         {
             for (int i = 0; i < Main.azubiVerwaltungListe.Count; i++)
             {
                 if (Azubiliste.SelectedItem.Equals(Main.azubiVerwaltungListe[i]))
                 {
                     auswahl = Main.azubiVerwaltungListe[i];
                     break;
                 }
             }
             MainWindow.changeContent(new BenutzerVerwalten(auswahl));
         }
     }
     //Bearbeiten der Admins/Ausbilder
     else if (!azubiReiter)
     {
         Administrator auswahl = null;
         if (Adminliste.SelectedItem == null)
         {
             MessageBox.Show("Niemanden ausgewählt!");
         }
         else
         {
             for (int l = 0; l < Main.AdminVerwaltungListe.Count; l++)
             {
                 if (Adminliste.SelectedItem.Equals(Main.AdminVerwaltungListe[l]))
                 {
                     auswahl = Main.AdminVerwaltungListe[l];
                     break;
                 }
             }
             MainWindow.changeContent(new AdminVerwalten(auswahl));
         }
     }
 }
コード例 #7
0
        private void AnmeldungButton_Click(object sender, RoutedEventArgs e)
        {
            Main.LadenStart();
            string benutzername = AnmeldungBenutzernameTextBox.Text;
            string passwort     = AnmeldungPasswordBox.Password;

            string hash = Main.GetHashWithSalt(passwort, benutzername);

            Main.benutzer = Main.api_anbindung.Login(benutzername, hash);

            Main.Laden();

            if (Main.benutzer.IstGueltig)
            {
                Main.LadeStatistiken();
                MainWindow.changeContent(new Hauptmenü());
            }
            else
            {
                MessageBox.Show("Der Benutzer konnte nicht gefunden werden. Mögliche Ursachen:\n" +
                                "   • Der Benutzername oder das Passwort ist falsch\n" +
                                "   • Es konnte keine Verbindung zur Datenbank hergestellt werden.");
            }
        }
コード例 #8
0
 private void Weiter_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new QuizDateneingabe());
 }
 private void Loeschen_Click(object sender, RoutedEventArgs e)
 {
     if (azubiReiter)
     {
         string nachricht    = null;
         Azubis bestätigen   = new Azubis();
         Azubis auswahl      = null;
         string azubiName    = null;
         string azubiVorname = null;
         if (Azubiliste.SelectedItem == null)
         {
             MessageBox.Show("Niemanden ausgewählt!");
         }
         else
         {
             for (int i = 0; i < Main.azubiVerwaltungListe.Count; i++)
             {
                 if (Azubiliste.SelectedItem.Equals(Main.azubiVerwaltungListe[i]))
                 {
                     auswahl = Main.azubiVerwaltungListe[i];
                     break;
                 }
             }
             try
             {
                 azubiName    = auswahl.Name;
                 azubiVorname = auswahl.Vorname;
                 nachricht    = "Sind sie sich sicher, dass der Benutzer:\n'" + azubiName + ", "
                                + azubiVorname + "'\n gelöscht werden soll?";
                 string caption = "Löschen?";
                 var    result  = MessageBox.Show(nachricht, caption, MessageBoxButton.YesNo);
                 if (result == MessageBoxResult.Yes)
                 {
                     Main.api_anbindung.BenutzerLoeschen(auswahl.ID, false);
                     MainWindow.changeContent(new Benutzerverwaltung());
                 }
             }
             catch (Exception)
             {
                 throw;
             }
         }
     }
     else
     {
         string        nachricht    = null;
         Administrator bestätigen   = new Administrator();
         Administrator auswahl      = null;
         string        adminName    = null;
         string        adminVorname = null;
         if (Adminliste.SelectedItem == null)
         {
             MessageBox.Show("Niemanden ausgewählt!");
         }
         else
         {
             for (int i = 0; i < Main.AdminVerwaltungListe.Count; i++)
             {
                 if (Adminliste.SelectedItem.ToString().Equals(Main.AdminVerwaltungListe[i].nutzername))
                 {
                     auswahl = Main.AdminVerwaltungListe[i];
                     break;
                 }
             }
             try
             {
                 adminName    = auswahl.Name;
                 adminVorname = auswahl.Vorname;
                 nachricht    = "Sind sie sich sicher, dass der Benutzer:\n'" + adminName + ", "
                                + adminVorname + "'\n gelöscht werden soll?";
                 string caption = "Löschen?";
                 var    result  = MessageBox.Show(nachricht, caption, MessageBoxButton.YesNo);
                 if (result == MessageBoxResult.Yes)
                 {
                     Main.api_anbindung.BenutzerLoeschen(auswahl.ID, true);
                     MainWindow.changeContent(new Benutzerverwaltung());
                 }
             }
             catch (Exception)
             {
                 throw;
             }
         }
     }
 }
コード例 #10
0
 private void ZuLernendeKategorienEinstellungButton_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new AdminKategorieErstellen());
 }
 private void Zurück_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new Administration());
 }
コード例 #12
0
 private void NeuePflanzeButton_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new PflanzenAnlegung());
 }
 private void Hauptmenü_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     MainWindow.changeContent(new Hauptmenü());
 }
コード例 #14
0
 private void NeuerBenutzer_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new Registrierung());
 }
 private void AbbrechenButton_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new Administration());
 }
コード例 #16
0
 private void Benutzerverwaltung_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new Benutzerverwaltung());
 }
コード例 #17
0
 private void ErscheinendePflanzen_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new ErscheinendePflanzenEinstellung());
 }
コード例 #18
0
 private void StatistikButton_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new AdminStatistikBenutzerAuswahl());
 }
コード例 #19
0
 private void QuizArtenVerwalten_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new QuizartenVerwalten());
 }
コード例 #20
0
 private void Pflanzenbearbeiten_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new AdminPflanzenBearbeitung());
 }
コード例 #21
0
 private void QuizGroeßeErstellen_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new QuizArtErstellen());
 }
 private void StatistikButton_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new Statistik());
 }
        public AdminQuizStatistik()
        {
            InitializeComponent();

            if (!Main.benutzer.istAdmin)
            {
                //ist mir doch egal, ob der Nutzer ein Admin ist
                //Der Name war tatsächlich nur Clickbait. Diese Klasse ist für alle Benutzer gedacht
            }

            if (Main.azubiStatistik == null || Main.azubiStatistik.pflanzen == null || Main.azubiStatistik.pflanzen.Length == 0)
            {
                //Das sollte im Übrigen nicht passieren. Aber jetzt ist es halt im Code. Ist wahrscheinlich besser, als wenn das Programm abstürzt.
                //Eventuell sollte man auch damit umgehen können, wenn während des Quiz das Internet ausgeht. Aber das ist etwas für die Zukunft (wenn überhaupt)
                System.Windows.MessageBox.Show("Ein Fehler ist aufgetreten! Weiter zum Hauptmenü...");
                MainWindow.changeContent(new Hauptmenü());
                return;
            }

            //Entferne Platzhalter-Daten
            AllgemeinStackPanel.Children.Clear();

            //Bekomme die Antworten
            StatistikPflanzeAntwort[] antworten = Main.azubiStatistik.pflanzen[Main.momentanePflanzeAusStatistik].antworten;

            for (int i = 0; i < antworten.Length; i++)
            {
                Grid grid = new Grid();
                grid.ColumnDefinitions.Add(new ColumnDefinition());
                grid.ColumnDefinitions.Add(new ColumnDefinition());
                grid.ColumnDefinitions.Add(new ColumnDefinition());

                Label kategorieNameLabel = new Label();
                kategorieNameLabel.Content = antworten[i].kategorie + ":";

                //Setze den Inhalt für das "Korrekt"-Label
                Label korrekteAntwortLabel = new Label();
                korrekteAntwortLabel.Content = antworten[i].korrekt;

                Label gegebeneAntwortLabel = new Label();
                gegebeneAntwortLabel.Content = antworten[i].eingabe;

                //if(korrekteAntwortLabel.Content.Equals(gegebeneAntwortLabel.Content))
                if (Main.IstRichtig(antworten[i].korrekt, antworten[i].eingabe))
                {
                    gegebeneAntwortLabel.Foreground = System.Windows.Media.Brushes.LimeGreen;
                    gegebeneAntwortLabel.Content   += " ✓";
                }
                else
                {
                    if (!Main.benutzer.IstWerker)
                    {
                        //Antwort falsch und kein Werker
                        gegebeneAntwortLabel.Foreground = System.Windows.Media.Brushes.Red;
                        gegebeneAntwortLabel.Content   += " ×";
                    }
                    else
                    {
                        if (!antworten[i].WirdFürWerkGewertet)
                        {
                            //Antwort falsch, aber Werker
                            gegebeneAntwortLabel.Foreground = System.Windows.Media.Brushes.Orange;
                            gegebeneAntwortLabel.Content   += " /";
                        }
                        else
                        {
                            //Antwort falsch und Werker, Kategorie wird aber trotzdem gezählt
                            gegebeneAntwortLabel.Foreground = System.Windows.Media.Brushes.Red;
                            gegebeneAntwortLabel.Content   += " ×";
                        }
                    }
                }

                //RegisterName(Main.kategorien[i].kategorie + "Label", gegebeneAntwortLabel);

                grid.Children.Add(kategorieNameLabel);
                grid.Children.Add(korrekteAntwortLabel);
                grid.Children.Add(gegebeneAntwortLabel);

                Grid.SetColumn(korrekteAntwortLabel, 1);
                Grid.SetColumn(gegebeneAntwortLabel, 2);

                AllgemeinStackPanel.Children.Add(grid);
            }//Ende for-Schleife

            Label notizTextBox = new Label();

            notizTextBox.Name   = "notizTextBox";
            notizTextBox.Margin = new Thickness(10);
            string notiz = Main.azubiStatistik.pflanzen[Main.momentanePflanzeAusStatistik].notiz;

            if (notiz != null)
            {
                string[] geteilteNotiz = notiz.Split(' ');
                int      abzaehlen     = 1;
                for (int i = 0; i < geteilteNotiz.Length; i++)
                {
                    notizTextBox.Content += geteilteNotiz[i] + " ";
                    abzaehlen++;
                    if (abzaehlen == 20)
                    {
                        notizTextBox.Content += "\n";
                        abzaehlen             = 1;
                    }
                }
            }
            else
            {
                notizTextBox.Content = "";
            }
            NotizStackPanel.Children.Add(notizTextBox);
        }
 private void BugReportButton_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new BugReport());
 }
        private void WeiterButton_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            Main.momentanePflanzeAusStatistik = (Main.momentanePflanzeAusStatistik + 1) % Main.azubiStatistik.pflanzen.Length;

            MainWindow.changeContent(new AdminQuizStatistik());
        }
 private void WeiterButton_Click(object sender, System.Windows.RoutedEventArgs e)
 {
     Main.momentanePflanzeAusQuiz++;
     MainWindow.changeContent(new QuizStatistik());
 }
コード例 #27
0
 private void HauptmenüButton_Click(object sender, RoutedEventArgs e)
 {
     MainWindow.changeContent(new Hauptmenü());
 }