Esempio n. 1
0
        public IEnumerable <ModelReference <IQuestionnaireOutputItem> > GetAll()
        {
            var existingQuestionnaires = m_domainItemLocator
                                         .GetAll <IQuestionnaireOutputItem>();

            if (!existingQuestionnaires.Any())
            {
                var examples = m_definitionLoader.Load();
                foreach (var example in examples)
                {
                    m_astCreator.Create(example);
                }

                var questionnaireRefs = m_domainItemLocator
                                        .GetAllRefs <IQuestionnaireRootNode>();

                foreach (var questionnaireRootNode in questionnaireRefs)
                {
                    if (m_modelCreator.Validate(questionnaireRootNode))
                    {
                        m_modelCreator.Create(questionnaireRootNode);
                    }
                }

                existingQuestionnaires = m_domainItemLocator
                                         .GetAll <IQuestionnaireOutputItem>();
            }

            return(existingQuestionnaires
                   .Select(x => x.ToModel <IQuestionnaireOutputItem>()));
        }
Esempio n. 2
0
        public void Execute(LoadQuestionnaireDefinitionsCommand command)
        {
            var definitions = m_definitionLoader.Load(command.Path);

            foreach (var definition in definitions)
            {
                m_questionnaireAstCreator.Create(definition);
            }
        }
Esempio n. 3
0
        public void Execute(CreateDefinitionFromTextCommand command)
        {
            m_astCreator.Create(command.DefinitionText);

            var questionnaireRef = m_domainItemLocator
                                   .GetAllRefs <IQuestionnaireRootNode>()
                                   .FirstOrDefault();

            var isValid = m_questionnaireTypeChecker
                          .Validate(questionnaireRef);

            if (!isValid)
            {
                var errorMessage = string.Join(
                    Environment.NewLine,
                    m_questionnaireTypeChecker
                    .Results
                    .Select(x => x.Message));
                throw new QlValidationException(errorMessage, null);
            }

            m_outputCreator.CreateOrUpdate(questionnaireRef);
        }
Esempio n. 4
0
 public void Execute(CreateQuestionnaireCommandMessage command)
 {
     m_questionnaireAstCreator.Create(command.Text);
 }