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); } }
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)); }