コード例 #1
0
        private void AddNoun(Word.Gender gender)
        {
            if (string.IsNullOrEmpty(tbWords.Text))
            {
                return;
            }

            AddGenericWord(tbWords.Text, Word.SpeechPart.Noun, gender);

            tbWords.Text = string.Empty;
        }
コード例 #2
0
        private void DerDieDasOption(Word.Gender gender)
        {
            if (ActiveNoun == null)
            {
                textError.Visibility = Visibility.Visible;
                return;
            }

            nounTries++;
            int trySucc = 0,
                tryTot  = 1;

            if (gender == ActiveNoun.Gen)
            {
                nounCorrect++;
                textSuccess.Foreground = new SolidColorBrush(Windows.UI.Colors.Green);
                textSuccess.Text       = $"Correct: {ActiveNoun.SingularCaption}";

                trySucc++;

                Tuple <int, int> tries;
                if (nounStats.TryGetValue(ActiveNoun.ID, out tries))
                {
                    trySucc += tries.Item1;
                    tryTot  += tries.Item2;
                }
            }
            else
            {
                textSuccess.Foreground = new SolidColorBrush(Windows.UI.Colors.Red);
                textSuccess.Text       = $"Error: {ActiveNoun.SingularCaption}";

                Tuple <int, int> tries;
                if (nounStats.TryGetValue(ActiveNoun.ID, out tries))
                {
                    trySucc += tries.Item1;
                    tryTot  += tries.Item2;
                }
            }

            nounStats[ActiveNoun.ID] = new Tuple <int, int>(trySucc, tryTot);
            textNounStats.Text       = $"{ActiveNoun.SingularCaption}: {trySucc} correct from {tryTot} tries";
            textSessionStats.Text    = $"{nounCorrect} correct from {nounTries} tries";

            UpdateSelectedNoun();
        }
コード例 #3
0
        private async void AddGenericWord(string text, Word.SpeechPart part, Word.Gender gender)
        {
            if (string.IsNullOrEmpty(text))
            {
                return;
            }

            var translation = text.Split('=');

            if (translation.Length != 2)
            {
                AddErrorMessage("Please provide a translation");
                return;
            }

            var germanForms    = translation[0].Trim();
            var translatedForm = translation[1].Trim();

            var sep   = ",;".ToCharArray();
            var parts = germanForms.Split(sep, StringSplitOptions.RemoveEmptyEntries);

            if (parts.Length < 1)
            {
                AddErrorMessage("Need to provide singular and plural");
                return;
            }

            var s = parts[0].Trim();
            var p = (parts.Length > 1)? parts[1].Trim() : "";

            if (part != Word.SpeechPart.Expression)
            {
                s = s.ToLower();
                p = p.ToLower();
            }

            if (part == Word.SpeechPart.Noun)
            {
                s = s.ToUpper()[0] + s.Substring(1).ToLower();
                p = p.ToUpper()[0] + p.Substring(1).ToLower();
            }

            using (var db = new ApplicationDbContext())
            {
                var lesson = GetCurrentLesson(db);

                var slower = s.ToLower();

                var duplicateWord = db.words.Where(x => x.German.ToLower() == slower).FirstOrDefault();
                if (duplicateWord != null)
                {
                    var  duplicateLesson = db.lessons.Where(x => x.ID == duplicateWord.LessonId).FirstOrDefault();
                    bool ret             = await DisplayDuplicateWordDialog(duplicateLesson.Title,
                                                                            duplicateWord.Translation);

                    if (!ret)
                    {
                        return;
                    }
                }

                if (lesson != null)
                {
                    Word noun = new Word
                    {
                        SpeechType  = part,
                        Gen         = gender,
                        German      = s,
                        Plural      = p,
                        Translation = translatedForm,
                        LessonId    = lesson.ID
                    };

                    var entry = db.words.Add(noun);

                    db.SaveChanges();

                    UpdateCurrentLesson(db);
                }
            }
        }