private void resetLearnedWordsButton_Click(object sender, EventArgs e)
 {
     _wordRepository.ResetAllLearnedWords();
     _localData.Words = _wordRepository.GetAllWords().ToList();
     PrepareForm();
 }
Esempio n. 2
0
        public List <Word> GetWordsForTesting(TypeTest typeTest)
        {
            var wordsInUsedCategories = _localData.Categories.Where(x => x.IsUsed).SelectMany(x => _localData.Words.Where(w => w.CategoryId == x.CategoryId)).ToList();

            if (wordsInUsedCategories.Count < Settings.MinAllowedWordsForTest)
            {
                throw new Exception("There are less then 5 words in selected categories. Please add more words or use more categories");
            }

            var requiredWords = new List <Word>();

            while (requiredWords.Count < Settings.MinAllowedWordsForTest)
            {
                requiredWords = new List <Word>(wordsInUsedCategories);
                switch (typeTest)
                {
                case TypeTest.EnglishCheck:
                    requiredWords.RemoveAll(x => x.IsLearnedEnglishByCheck);
                    break;

                case TypeTest.EnglishTranslation:
                    requiredWords.RemoveAll(x => x.IsLearnedEnglishByTranslation);
                    break;

                case TypeTest.RussianCheck:
                    requiredWords.RemoveAll(x => x.IsLearnedRussianByCheck);
                    break;

                case TypeTest.RussianTranslation:
                    requiredWords.RemoveAll(x => x.IsLearnedRussianByTranslation);
                    break;
                }

                if (requiredWords.Count() < Settings.MinAllowedWordsForTest)
                {
                    switch (typeTest)
                    {
                    case TypeTest.EnglishCheck:
                        _wordRepository.ResetAllEnglishLearnedWordsByChecking();
                        break;

                    case TypeTest.EnglishTranslation:
                        _wordRepository.ResetAllEnglishLearnedWordsByTranslation();
                        break;

                    case TypeTest.RussianCheck:
                        _wordRepository.ResetAllRussianLearnedWordsByChecking();
                        break;

                    case TypeTest.RussianTranslation:
                        _wordRepository.ResetAllRussianLearnedWordsByTranslation();
                        break;
                    }

                    var allWords = _wordRepository.GetAllWords().ToList();

                    LocalAppData.Instance.Words = allWords;
                    wordsInUsedCategories       = allWords;
                }
            }

            foreach (var word in requiredWords)
            {
                word.Translate = word.GetRandomTranslate;
            }

            requiredWords = requiredWords.Take(10).ToList().Shuffle().Take(Settings.MinAllowedWordsForTest).ToList();

            return(requiredWords);
        }