コード例 #1
0
        public IQuestionType GetQuestion(QuestionTypeEnum type)
        {
            IQuestionType qType = null;

            switch (type)
            {
            case QuestionTypeEnum.BuiltIn:
                break;

            case QuestionTypeEnum.QandA:
                qType = _svcContainer.QAQuestionSvc;
                break;

            case QuestionTypeEnum.MultipleChoice:
                qType = _svcContainer.MCQuestionSvc;
                break;

            case QuestionTypeEnum.MultiChoiceSame:
                qType = _svcContainer.MultiChoiceSameQuestionSvc;
                break;

            default:
                break;
            }

            return(qType);
        }
コード例 #2
0
        public void WhenGivenValidQuestion_NameTextAndTypeCorrect(
            string validText,
            string expectedId,
            string expectedText,
            IQuestionType expectedType)
        {
            CreateForm(validText);
            var question = m_domainItemLocator
                           .GetAll <IQuestionNode>()
                           .FirstOrDefault();

            Assert.IsNotNull(question, "could not find a question node");

            Assert.AreEqual(
                expected: expectedId,
                actual: question.QuestionName,
                message: "The question name did not match");

            Assert.AreEqual(
                expected: expectedText,
                actual: question.QuestionText,
                message: "The question text did not match");

            Assert.IsTrue(
                expectedType.GetType() == question.QuestionType.GetType(),
                message: "The question type did not match");
        }
コード例 #3
0
        public static TestCaseData TypeResult(string qlType, IQuestionType questionType)
        {
            var formTemplate = @"form TestForm {{ q: ""i""  {0}}}";

            return(new TestCaseData(
                       string.Format(formTemplate, qlType),
                       questionType));
        }
コード例 #4
0
 public Task<int> UpdateAsync(IQuestionType questionType)
 {
     if (String.IsNullOrEmpty(questionType.Id))
     {
         throw new ArgumentNullException("Id");
     }
     return questionTypeRepository.UpdateAsync(questionType);
 }
コード例 #5
0
        private Style GetStyleDefaultForType(IQuestionType questionType)
        {
            var styleStack = StyleStacks[questionType.GetType()];

            return(styleStack.PeekStyle());

            throw new ArgumentException(nameof(questionType), $"unknown");
        }
コード例 #6
0
        //private Dictionary<QuestionTypeEnum, Func<int, bool, bool>> deleteQuestionMap;

        //private void InitializeDeleteQuestionMap()
        //{
        //    deleteQuestionMap = new Dictionary<QuestionTypeEnum, Func<int, bool, bool>>()
        //    {
        //        {QuestionTypeEnum.QandA, DeleteQandAQuestion},
        //        {QuestionTypeEnum.MultipleChoice, DeleteMultipleChoiceQuestion}
        //    };
        //}

        public bool DeleteQuestion(QuestionTypeEnum type, int id, bool callSaveChanges = true)
        {
            IQuestionType qType = _questionTypeFactory.GetQuestion(type);

            if (qType != null)
            {
                qType.DeleteQuestion(id, callSaveChanges);
            }
            return(false);
        }
コード例 #7
0
        //private bool DeleteQandAQuestion(int id, bool callSaveChanges = true)
        //{
        //    return _qaQuestionSvc.DeleteQuestion(id, callSaveChanges);
        //}

        //private bool DeleteMultipleChoiceQuestion(int id, bool callSaveChanges = true)
        //{
        //    return _mcQuestionSvc.DeleteQuestion(id, callSaveChanges);
        //}
        #endregion

        #region CreateQuestion
        public QuestionModel CreateQuestion(QuestionTypeEnum type, object model)
        {
            IQuestionType qType = _questionTypeFactory.GetQuestion(type);

            if (qType != null)
            {
                return(qType.CreateQuestion(model));
            }
            return(null);
        }
コード例 #8
0
 public UserInputQuestionNode(
     Guid id,
     string definition,
     string questionId,
     string questionText,
     IQuestionType questionType) : base(id, definition)
 {
     QuestionName = questionId;
     QuestionText = questionText;
     QuestionType = questionType;
 }
コード例 #9
0
        public SimpleQuestion(QuestionSet questionSet)
        {
            InitializeComponent();
            QuestionSet        = questionSet;
            QuestionLabel.Text = QuestionSet.QuestionText;

            QuestionTypes.QuestionPanel = QuestionPanel;
            QuestType = QuestionTypes.GetQuestionType(QuestionSet);
            var question = QuestType.getUserControl();

            QuestionTypes.SetQuest(question, QuestionSet);

            QuestionPanel.Controls.Add(question);
        }
コード例 #10
0
        public void GivenAValidType_ReturnsQuestionOfCorrectType(
            string validDefinition,
            IQuestionType questionType)
        {
            CreateOutputForm(validDefinition);
            var domainItem = m_domainItemLocator
                             .GetAll <IQuestionOutputItem>()
                             .FirstOrDefault();

            Assert.NotNull(domainItem);
            Assert.AreEqual(
                expected: questionType.GetType(),
                actual: domainItem.QuestionType.GetType());
        }
コード例 #11
0
 public CalculatedQuestionNode(
     Guid id,
     string definition,
     string questionId,
     string questionText,
     IQuestionType questionType,
     DomainId <ICalculationNode> calculation)
     : base(id, definition)
 {
     QuestionName    = questionId;
     QuestionText    = questionText;
     QuestionType    = questionType;
     CalculatedValue = calculation;
 }
コード例 #12
0
 public QuestionModel(
     Guid questionOutputId,
     Guid questionVariableId,
     string questionText,
     bool visible,
     bool readOnly,
     IQuestionType questionType)
 {
     QuestionVariableId = questionVariableId;
     QuestionOutputId   = questionOutputId;
     QuestionText       = questionText;
     Visible            = visible;
     ReadOnly           = readOnly;
     QuestionType       = questionType;
 }
コード例 #13
0
        public DomainId <ICalculatedQuestionNode> CreateCalculatedQuestion(
            string definition,
            string questionName,
            string questionText,
            IQuestionType questionType,
            DomainId <ICalculationNode> calculation)
        {
            var question = new CalculatedQuestionNode(
                m_ids.Next,
                definition,
                questionName,
                questionText,
                questionType,
                calculation);

            return(DomainItemRegistration <ICalculatedQuestionNode>(question));
        }
コード例 #14
0
        public DomainId <IUserInputQuestionNode> CreateUserInputQuestion(
            string definition,
            string questionName,
            string questionText,
            IQuestionType questionType)
        {
            var question = new UserInputQuestionNode(
                m_ids.Next,
                definition,
                questionName,
                questionText,
                questionType);

            questionType.InitializeVariable(m_symbolTable, question.Id);

            return(DomainItemRegistration <IUserInputQuestionNode>(question));
        }
コード例 #15
0
 public QuestionOutputItem(
     Guid id,
     DomainId <IQuestionNode> variable,
     string questionName,
     string questionText,
     IQuestionType questionType,
     string value,
     bool isVisible,
     bool isReadonly)
 {
     Id           = id;
     Variable     = variable;
     QuestionName = questionName;
     DisplayName  = questionText;
     QuestionText = questionText;
     Value        = value;
     QuestionType = questionType;
     Visible      = isVisible;
     ReadOnly     = isReadonly;
 }
コード例 #16
0
        private void QuestionListBox_SelectedValueChanged(object sender, EventArgs e)
        {
            foreach (var ctrl in Controls.OfType <UserControl>().ToList())
            {
                Controls.Remove(ctrl);
            }

            if (QuestionListBox.SelectedIndex != -1)
            {
                using (ForumContainer container = new ForumContainer())
                {
                    var selectedValue = Convert.ToInt32(QuestionListBox.SelectedValue.ToString());
                    QuestionSet = container.QuestionSet.FirstOrDefault(x => x.QuestionId == selectedValue);

                    QuestionLabel.Text = QuestionSet.QuestionText;

                    QuestType = QuestionTypes.GetQuestionType(QuestionSet);
                    var question = QuestType.getUserControl();
                    QuestionTypes.SetQuest(question, QuestionSet, false);

                    Controls.Add(question);
                }
            }
        }
コード例 #17
0
 public async Task<int> UpdateAsync(IQuestionType questionType)
 {
     return await repository.UpdateEntityAsync<QuestionTypeEntity>(Mapper.Map<QuestionTypeEntity>(questionType));
 }
コード例 #18
0
 public Task<int> InsertAsync(IQuestionType questionType)
 {
     questionType.Id = Guid.NewGuid().ToString();
     return questionTypeRepository.InsertAsync(questionType);
 }
コード例 #19
0
 public async Task<int> InsertAsync(IQuestionType questionType)
 {
     return await repository.InsertEntityAsync<QuestionTypeEntity>(Mapper.Map<QuestionTypeEntity>(questionType));
 }
コード例 #20
0
 public DefaultStyle(IQuestionType type, DomainId <IStyleNode> style)
 {
     Type  = type;
     Style = style;
 }