コード例 #1
0
        // Получение текста следующего вопроса и имени соответствующего правила
        public Tuple <string, string, List <string> > GetQuestionAndCurrentDefruleName()
        {
            string        defName = string.Empty, questionText = string.Empty;
            List <string> validAnswers = new List <string>();

            // Цикл с вложеным циклом для прохода по узлам в xml-файле для получения фактов
            foreach (var defrule in xml.Root.Elements())
            {
                foreach (var attribute in defrule.Attributes())
                {
                    defName = defrule.Attribute("name").Value;
                    defName = defName.Remove(defName.IndexOf("Defrule"), "Defrule".Length);

                    // Добавление нового вопроса для факта, если его еще нет в списке ответов пользователя
                    if (attribute.Name == "question" && !workMemory.IsFactСontained(defName))
                    {
                        questionText = defrule.Attribute("question").Value;
                        string answersValues = defrule.Attribute("validAnswers").Value;
                        validAnswers = answersValues.Split(',').ToList();
                        return(Tuple.Create(questionText, defName, validAnswers));
                    }
                }
            }

            return(null);
        }
コード例 #2
0
        public Tuple <string, string> GetQuestionAndCurrentDefruleName() // получение текста следующего вопроса и имени соответствующего правила
        {
            string defName = string.Empty, questionText = string.Empty;

            foreach (var defrule in xml.Root.Descendants())
            {
                if (!defrule.HasElements && !workMemory.IsFactСontained(defrule.Attribute("name").Value))
                {
                    defName      = defrule.Attribute("name").Value;
                    questionText = defrule.Attribute("question").Value;
                    break;
                }
            }

            return(Tuple.Create(questionText, defName));
        }
コード例 #3
0
        public Tuple <string, string, List <string> > GetQuestionAndCurrentDefruleName() // получение текста следующего вопроса и имени соответствующего правила
        {
            string        defName = string.Empty, questionText = string.Empty;
            List <string> validAnswers = new List <string>();

            foreach (var defrule in xml.Root.Elements())
            {
                foreach (var attribute in defrule.Attributes())
                {
                    defName = defrule.Attribute("name").Value;
                    defName = defName.Remove(defName.IndexOf("Defrule"), "Defrule".Length);

                    if (attribute.Name == "question" && !workMemory.IsFactСontained(defName))
                    {
                        questionText = defrule.Attribute("question").Value;
                        string answersValues = defrule.Attribute("validAnswers").Value;
                        validAnswers = answersValues.Split(',').ToList();
                        return(Tuple.Create(questionText, defName, validAnswers));
                    }
                }
            }

            return(null);
        }