Exemplo n.º 1
0
        public void Visit(DomainId <IQuestionnaireRootNode> questionnaireNode)
        {
            var astNode = questionnaireNode
                          .ToDomainItem(m_domainItemLocator);

            HandleStatements(astNode.Statements);

            var existingOutput = m_domainItemLocator
                                 .GetAll <IQuestionnaireOutputItem>()
                                 .FirstOrDefault(x => x.Variable.Id == astNode.Id);

            if (existingOutput == null)
            {
                m_outputItemFactory.CreateQuestionnaireOutputItem(
                    questionnaireNode,
                    astNode.QuestionnaireName,
                    m_questions);
            }
        }
Exemplo n.º 2
0
        public Reference <IQuestionnaireOutputItem> Visit(
            Reference <IQuestionnaireRootNode> questionnaireNode)
        {
            var node = questionnaireNode
                       .ToDomainItem(m_domainItemLocator);

            var questions = new List <Reference <IQuestionOutputItem> >();

            foreach (var statement in node.Statements)
            {
                if (m_domainItemLocator.Exists <IUserInputQuestionNode>(statement.Id))
                {
                    var domainItem = m_domainItemLocator
                                     .GetRef <IUserInputQuestionNode>(statement.Id);
                    var questionRef = Visit(domainItem);
                    questions.Add(questionRef);
                }
            }

            return(m_outputItemFactory.CreateQuestionnaireOutputItem(
                       node.QuestionnaireName,
                       questions));
        }