Ejemplo n.º 1
0
 public QuestionBuilderParameters()
 {
     this.correctChoicesHistory = PackListHistory.RepeatWhenFull;
     this.wrongChoicesHistory   = PackListHistory.RepeatWhenFull;
     this.useJourneyForCorrect  = true;
     this.useJourneyForWrong    = false;
     this.correctSeverity       = SelectionSeverity.MayRepeatIfNotEnough;
     this.wrongSeverity         = SelectionSeverity.MayRepeatIfNotEnough;
     this.letterFilters         = new LetterFilters();
     this.wordFilters           = new WordFilters();
     this.phraseFilters         = new PhraseFilters();
 }
Ejemplo n.º 2
0
        private bool CheckFilters(WordFilters wordFilters, PhraseFilters phraseFilters, PhraseData data)
        {
            // Words are checked with filters. At least 1 must fulfill the requirement.
            var words    = GetWordsInPhrase(data, wordFilters);
            int nOkWords = words.Count;

            var answers    = GetAnswersToPhrase(data, wordFilters);
            int nOkAnswers = answers.Count;

            var wordsInPhraseText = GetWordsFromPhraseText(data, wordFilters);

            if (phraseFilters.maxLength != 0 && data.Text.Length > phraseFilters.maxLength)
            {
                return(false);
            }

            if (phraseFilters.maxWords != 0 && wordsInPhraseText.Count > phraseFilters.maxWords)
            {
                return(false);
            }

            if (phraseFilters.requireWords && nOkWords == 0)
            {
                return(false);
            }
            if (phraseFilters.requireAtLeastTwoWords && nOkWords <= 1)
            {
                return(false);
            }
            if (phraseFilters.requireAnswersOrWords && nOkAnswers == 0 && nOkWords == 0)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 3
0
        private bool CheckFilters(WordFilters wordFilters, PhraseFilters phraseFilters, PhraseData data)
        {
            // Words are checked with filters. At least 1 must fulfill the requirement.
            var words    = GetWordsInPhrase(data, wordFilters);
            int nOkWords = words.Count;

            var answers    = GetAnswersToPhrase(data, wordFilters);
            int nOkAnswers = answers.Count;

            if (phraseFilters.requireWords && (nOkWords == 0))
            {
                return(false);
            }
            if (phraseFilters.requireAtLeastTwoWords && (nOkWords <= 1))
            {
                return(false);
            }
            if (phraseFilters.requireAnswersOrWords && (nOkAnswers == 0 && nOkWords == 0))
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 4
0
        public List <PhraseData> GetPhrasesNotIn(WordFilters wordFilters, PhraseFilters phraseFilters, params PhraseData[] tabooArray)
        {
            var tabooList = new List <PhraseData>(tabooArray);

            return(dbManager.FindPhraseData(x => !tabooList.Contains(x) && CheckFilters(wordFilters, phraseFilters, x)));
        }
Ejemplo n.º 5
0
 public List <PhraseData> GetPhrasesByCategory(PhraseDataCategory choice, WordFilters wordFilters, PhraseFilters phraseFilters)
 {
     return(dbManager.FindPhraseData(x => x.Category == choice && CheckFilters(wordFilters, phraseFilters, x)));
 }
Ejemplo n.º 6
0
 public List <PhraseData> GetAllPhrases(WordFilters wordFilters, PhraseFilters phraseFilters)
 {
     return(dbManager.FindPhraseData(x => CheckFilters(wordFilters, phraseFilters, x)));
 }