コード例 #1
0
ファイル: Notenizer.cs プロジェクト: nemcek/notenizer
        /// <summary>
        /// Gets and-rule for sentence.
        /// </summary>
        /// <param name="rule"></param>
        /// <param name="andRuleId"></param>
        /// <returns></returns>
        public NotenizerAndRule GetAndRuleForSentence(NotenizerRule rule, String andRuleId)
        {
            NotenizerAndRule andRule;

            andRule = DocumentParser.ParseAndRule(
                DB.GetFirst(
                    DBConstants.AndRulesCollectionName,
                    DocumentCreator.CreateFilterById(andRuleId)).Result);

            andRule.Structure = new NotenizerStructure(
                DocumentParser.ParseStructure(
                    DB.GetFirst(
                        DBConstants.StructuresCollectionName,
                        DocumentCreator.CreateFilterById(andRule.StructureID)).Result));

            andRule.Sentence = rule.Sentence;

            return andRule;
        }
コード例 #2
0
ファイル: Notenizer.cs プロジェクト: nemcek/notenizer
        /// <summary>
        /// Applies rule.
        /// Parses sentence by applied rule.
        /// </summary>
        /// <param name="sentence">Sentence to apply rule to</param>
        /// <param name="rule">Rule for parsing to apply</param>
        /// <returns></returns>
        public NotenizerNote ApplyRule(NotenizerSentence sentence, NotenizerRule rule)
        {
            NotenizerNote note = new NotenizerNote(sentence);
            NotePart notePart = new NotePart(sentence);

            foreach (NotenizerDependency ruleLoop in rule.Structure.Dependencies)
            {
                ApplyRule(sentence, ruleLoop, notePart);
            }

            note.Add(notePart);

            if (rule is NotenizerNoteRule)
                ApplyRule(note, rule as NotenizerNoteRule);
            else if (rule is NotenizerAndRule)
                ApplyRule(note, rule as NotenizerAndRule);
            //note.Note = rule.Note;
            note.Structure = rule.Structure;
            return note;
        }