private void GetSentenceResult(Sentence sentence, List <SearchWord> searchWords, SenteneType sentenceType, bool alsoSynonyms) { List <string> foundedWords = new List <string>(); List <string> words = sentence.SplitSentenceIntoWords(); foreach (SearchWord searchWord in searchWords) { int count = 0; // Search for exact match in sentence. count = words.Where(w => w.ToLower() == searchWord.Term.ToLower()).Count(); if (count > 0) { this.FoundedTerms.Add(new FoundedTerm(sentenceType, TermType.Exact, searchWord.Term, count, 3, 2, 1)); } // Search for similiar word in sentence. foundedWords = words.Where(w => Fastenshtein.Levenshtein.Distance(w.ToLower(), searchWord.Term.ToLower()) == 1).ToList(); this.AddHitsToFoundedTerms(foundedWords, sentenceType, TermType.Similar); // Search for synonyms in sentence. if (alsoSynonyms) { foundedWords = new List <string>(); foundedWords = words.Where(w => BackgroundTasks.CheckIfWordISynonyms(w, searchWord)).ToList(); this.AddHitsToFoundedTerms(foundedWords, sentenceType, TermType.Synonym); } } }