コード例 #1
0
        public async Task <IActionResult> EditQuestionById(SingleSelectionQuestionModel modelForView, IList <string> textOfAnswers, string radioButtonValue)
        {
            if (modelForView == null)
            {
                return(BadRequest("Model for view is empty."));
            }

            var question = await _singleRepository.GetAsync(modelForView.Id);

            if (question == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            int.TryParse(radioButtonValue, out var radioButtonIntValue);
            var newOptions = new List <SingleSelectionQuestionOption>();

            for (int i = 0; i < textOfAnswers.Count(); i++)
            {
                var isAnswer = i == radioButtonIntValue;
                var option   = new SingleSelectionQuestionOption(textOfAnswers[i], isAnswer);
                newOptions.Add(option);
            }
            _singleRepository.DeleteQuestionOptionsInDB(question);
            question.Update(modelForView.Question, newOptions);
            _singleRepository.UpdateQuestion(question);

            return(RedirectToAction("Index", "Home"));
        }
コード例 #2
0
        public void GetRightAnswer_ReturnsTrueOption()
        {
            //Arrange
            var theTrueOption = new SingleSelectionQuestionOption("2nd option (true)", true);
            var options       = new List <SingleSelectionQuestionOption>()
            {
                new SingleSelectionQuestionOption("1st option (false)", false),
                theTrueOption,
                new SingleSelectionQuestionOption("3rd option (false)", false),
                new SingleSelectionQuestionOption("4th option (false)", false)
            };
            var singleSelectionQuestion = new SingleSelectionQuestion("Question text");

            singleSelectionQuestion.InitializeOptions(options);

            //Act
            var answer = singleSelectionQuestion.GetRightAnswer();

            //Assert
            Assert.True(answer.IsAnswer);
            Assert.Equal(theTrueOption.Text, answer.Text);
        }