Exemplo n.º 1
0
        /// <summary>
        /// Wenn der benutzer auf WEITER klickt
        /// </summary>
        private void act_Continue()
        {
            if (btn_Continue.Text == "BESTÄTIGEN")
            {
                // Abfragerichtung bestimmen
                if (direction)
                {
                    string writtenAnswer  = tb_Fremdsprache.Text;
                    string withoutComment = Regex.Replace(transVoc, @"\[.*?\]", "").Trim();

                    if (!cb_GrossKleinSchreibung.Checked)
                    {
                        withoutComment = withoutComment.ToLower();
                    }
                    if (!cb_GrossKleinSchreibung.Checked)
                    {
                        writtenAnswer = writtenAnswer.ToLower();
                    }

                    // Aufteilung in mehrere Bedeutungen für das selbe Wort
                    if (withoutComment.Split(Miscellaneous.BoxValues.MULTIPLE_MEANING_SEPERATOR).Contains(writtenAnswer))
                    {
                        wasRight = true;
                    }
                    else
                    {
                        wasRight = false;
                    }

                    tb_Fremdsprache.Text = string.Join(" | ", withoutComment.Split('|'));
                }
                else
                {
                    string writtenAnswer  = tb_EigeneSprache.Text;
                    string withoutComment = Regex.Replace(currentVoc, @"\[.*?\]", "").Trim();

                    if (!cb_GrossKleinSchreibung.Checked)
                    {
                        withoutComment = withoutComment.ToLower();
                    }
                    if (!cb_GrossKleinSchreibung.Checked)
                    {
                        writtenAnswer = writtenAnswer.ToLower();
                    }

                    // Aufteilung in mehrere Bedeutungen für das selbe Wort
                    if (withoutComment.Split(Miscellaneous.BoxValues.MULTIPLE_MEANING_SEPERATOR).Contains(writtenAnswer))
                    {
                        wasRight = true;
                    }
                    else
                    {
                        wasRight = false;
                    }

                    tb_EigeneSprache.Text = string.Join(" | ", withoutComment.Split('|'));
                }

                // Farbe ändern
                if (wasRight)
                {
                    tb_EigeneSprache.ForeColor = Color.Green;
                    tb_Fremdsprache.ForeColor  = Color.Green;
                    btn_Continue.ForeColor     = Color.Green;
                }
                else
                {
                    tb_EigeneSprache.ForeColor = Color.Red;
                    tb_Fremdsprache.ForeColor  = Color.Red;
                    btn_Continue.ForeColor     = Color.Red;

                    btn_Vertippt.Visible = true;
                }

                gb_Optionen.Enabled = false;
                btn_Continue.Text   = "WEITER";
            }
            else if (btn_Continue.Text == "WEITER")
            {
                DBAdapter.UpdateLabel(dbFilePath, "lastLearned", DateTime.Today.ToString("d"));

                // Alte Vokabel Verwaltung
                if (wasRight)
                {
                    StatsAddEntry(true);

                    if (currentClass != 10)
                    {
                        Fach[currentClass].Remove(currentVoc);
                        Fach[currentClass + 1].Add(currentVoc, transVoc);
                        DBAdapter.ChangeVocableClass(dbFilePath, currentVoc, currentClass + 1);
                    }
                    else
                    {
                        Fach[currentClass].Remove(currentVoc);
                        Fach[0].Add(currentVoc, transVoc);
                        DBAdapter.ChangeVocableClass(dbFilePath, currentVoc, 0);
                    }

                    UpdateClassVisibility();
                }
                else
                {
                    StatsAddEntry(false);

                    if (cb_BackToOne.Checked)
                    {
                        Fach[currentClass].Remove(currentVoc);
                        Fach[1].Add(currentVoc, transVoc);
                        DBAdapter.ChangeVocableClass(dbFilePath, currentVoc, 1);
                    }

                    UpdateClassVisibility();
                }

                btn_Vertippt.Visible       = false;
                btn_Continue.ForeColor     = SystemColors.ControlText;
                btn_Continue.Text          = "BESTÄTIGEN";
                gb_Optionen.Enabled        = true;
                tb_EigeneSprache.ForeColor = SystemColors.ControlText;
                tb_Fremdsprache.ForeColor  = SystemColors.ControlText;

                // Nächste Vokabel
                int countCurrentClass = Fach[currentClass].Count();

                if (countCurrentClass > 0)
                {
                    NextExercise();
                }
                else
                {
                    if (currentClass == 1)
                    {
                        FindNewClass();
                        DBAdapter.UpdateLabel(dbFilePath, "lastClass", currentClass.ToString());

                        if (MessageBox.Show("Du hast die Box nun einmal durchgelernt. Es ist empfohlen in regelmäßigen Abständen zu lernen. Möchtest du weiter lernen?", "Weiter lernen?",
                                            MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            NextExercise();
                        }
                        else
                        {
                            CloseMeFunction?.Invoke(this, null);
                        }
                    }
                    else
                    {
                        while (!FindNextClass())
                        {
                            currentClass--;

                            if (currentClass == 0)
                            {
                                FindNewClass();
                                DBAdapter.UpdateLabel(dbFilePath, "lastClass", currentClass.ToString());

                                if (MessageBox.Show("Du hast die Box nun einmal durchgelernt. Es ist empfohlen in regelmäßigen Abständen zu lernen. Möchtest du weiter lernen?", "Weiter lernen?",
                                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                                {
                                    NextExercise();
                                }
                                else
                                {
                                    CloseMeFunction?.Invoke(this, null);
                                }
                            }
                        }

                        NextExercise();
                    }
                }
            }
        }