Пример #1
0
 private void HandleStatements(IEnumerable <DomainId <IStatementNode> > statements)
 {
     foreach (var statement in statements)
     {
         if (m_domainItemLocator.Exists <IUserInputQuestionNode>(statement.Id))
         {
             Visit(new DomainId <IUserInputQuestionNode>(statement.Id));
         }
         else if (m_domainItemLocator.Exists <ICalculatedQuestionNode>(statement.Id))
         {
             Visit(new DomainId <ICalculatedQuestionNode>(statement.Id));
         }
         else if (m_domainItemLocator.Exists <IConditionalStatementNode>(statement.Id))
         {
             Visit(new DomainId <IConditionalStatementNode>(statement.Id));
         }
     }
 }
Пример #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));
        }