/// <summary> /// Create persistable note from note. /// </summary> /// <returns></returns> public Note CreateNote() { this._note = new Note(this._text); return this._note; }
/// <summary> /// Gets rule for sentence /// </summary> /// <param name="sentence">Sentence to get rule for</param> /// <param name="matchedNote">Out matched note of sentence</param> /// <returns></returns> private NotenizerNoteRule GetRuleForSentence(NotenizerSentence sentence, out Note matchedNote) { Match match; Article article; Structure structure; Note matchedSentenceNote; NotenizerNoteRule matchedSentenceRule; NotenizerStructure matchedSentenceStructure; List<BsonDocument> sentencesWithSameStructure; matchedNote = null; structure = DocumentParser.GetHeighestMatch( sentence.Structure, DB.GetAll(DBConstants.StructuresCollectionName, DocumentCreator.CreateFilterByStructure(sentence)).Result, out match); if (structure == null) return null; matchedSentenceStructure = new NotenizerStructure(structure); sentencesWithSameStructure = DB.GetAll( DBConstants.SentencesCollectionName, DocumentCreator.CreateFilterById(DBConstants.StructureRefIdFieldName, matchedSentenceStructure.Structure.ID)).Result; nsNotenizerObjects.Sentence matchedSentence = null; if (sentencesWithSameStructure.Count > 0) { matchedSentence = DocumentParser.ParseSentence(sentencesWithSameStructure[0]); foreach (BsonDocument sentenceWithSameStructureLoop in sentencesWithSameStructure) { if (sentenceWithSameStructureLoop[DBConstants.TextFieldName].AsString.Trim() == sentence.Sentence.Text) { match.Value = 100.0; matchedSentence = DocumentParser.ParseSentence(sentenceWithSameStructureLoop); break; } } } if (matchedSentence == null) return null; article = DocumentParser.ParseArticle( DB.GetFirst( DBConstants.ArticlesCollectionName, DocumentCreator.CreateFilterById(sentence.Sentence.Article.ID)).Result); matchedSentenceNote = DocumentParser.ParseNote( DB.GetFirst( DBConstants.NotesCollectionName, DocumentCreator.CreateFilterById(matchedSentence.NoteID)).Result); matchedSentenceRule = DocumentParser.ParseRule( DB.GetFirst( DBConstants.RulesCollectionName, DocumentCreator.CreateFilterById(matchedSentence.RuleID)).Result); matchedSentenceRule.Structure = new NotenizerStructure( DocumentParser.ParseStructure( DB.GetFirst( DBConstants.StructuresCollectionName, DocumentCreator.CreateFilterById(matchedSentenceRule.StructureID)).Result)); matchedSentenceRule.Sentence = matchedSentence; matchedSentenceRule.Sentence.Article = article; matchedSentenceRule.Match = match; matchedNote = matchedSentenceNote; return matchedSentenceRule; }