public PartialViewResult Edit([Bind(Include = "Id,Description,Options,ExamId")] SingleSelectionQuestionWithOptionsViewModel model) { if (ModelState.IsValid) { SingleSelectionQuestion question = new SingleSelectionQuestion { Id = model.Id, ExamId = model.ExamId, Description = model.Description, Options = model.Options }; _db.Entry(question).State = EntityState.Modified; foreach (var option in question.Options) { _db.Entry(option).State = EntityState.Modified; } _db.SaveChanges(); question = _db.SingleSelectionQuestions.Include(q => q.Variables).Single(q => q.Id == question.Id); var evaluator = new NotationlessEvaluator(); question = evaluator.Evaluate(question) as SingleSelectionQuestion; return(PartialView("_Details", question)); } return(PartialView("_Edit", model)); }
public PartialViewResult Create(int examId) { var question = new SingleSelectionQuestion { Description = "Pregunta nueva", ExamId = examId }; var list = new List <QuestionOption> { new QuestionOption { Description = "Opción 1", Feedback = "Feedback de opción 1", IsCorrect = true }, new QuestionOption { Description = "Opción 2", Feedback = "Feedback de opción 2", IsCorrect = false }, new QuestionOption { Description = "Opción 3", Feedback = "Feedback de opción 3", IsCorrect = false }, new QuestionOption { Description = "Opción 4", Feedback = "Feedback de opción 4", IsCorrect = false } }; question.Options = list; _db.SingleSelectionQuestions.Add(question); _db.SaveChanges(); var evaluator = new NotationlessEvaluator(); question = evaluator.Evaluate(question) as SingleSelectionQuestion; return(PartialView("_Details", question)); }
public void GetRightAnswer_GetsZeroOptions_ReturnsNull() { //Arrange var singleSelectionQuestion = new SingleSelectionQuestion("Question text"); //Act var answer = singleSelectionQuestion.GetRightAnswer(); //Assert Assert.Null(answer); }
public void DeleteQuestionOptionsInDB(SingleSelectionQuestion question) { var options = question.Options .ToList(); foreach (var o in options) { _dbContext.Entry(o).State = EntityState.Deleted; } _dbContext.SaveChanges(); }
public IActionResult Create(SingleSelectionQuestionModel modelForView, IList <string> textOfAnswers, string radioButtonValue) { if (modelForView == null) { return(BadRequest("Model for view is empty.")); } var question = new SingleSelectionQuestion(modelForView.Question, textOfAnswers, radioButtonValue); _singleRepository.AddQuestion(question); return(RedirectToAction("Index", "Home")); }
public void InitializeOptions_GetsNoTrue_ArgumentException() { //Arrange var options = new List <SingleSelectionQuestionOption>() { new SingleSelectionQuestionOption("1st option (false)", false), new SingleSelectionQuestionOption("2nd option (false)", false) }; var singleSelectionQuestion = new SingleSelectionQuestion("Question text"); //Act //Assert Assert.Throws <ArgumentException>(() => singleSelectionQuestion.InitializeOptions(options)); }
/// <summary> /// Evaluates a question, removing all notation and leaving the variables' names. /// </summary> /// <param name="question">Question to be evaluated.</param> /// <returns>Evaluated question.</returns> public Question Evaluate(Question question) { var selectionQuestion = question as SelectionQuestion; if (selectionQuestion != null) { SelectionQuestion aux; if (question is MultipleSelectionQuestion) { aux = new MultipleSelectionQuestion { Description = selectionQuestion.Description, ExamId = selectionQuestion.ExamId, Options = selectionQuestion.Options, Answers = selectionQuestion.Answers, Exam = selectionQuestion.Exam, Id = selectionQuestion.Id, Variables = selectionQuestion.Variables }; } else { aux = new SingleSelectionQuestion { Description = selectionQuestion.Description, ExamId = selectionQuestion.ExamId, Options = selectionQuestion.Options, Answers = selectionQuestion.Answers, Exam = selectionQuestion.Exam, Id = selectionQuestion.Id, Variables = selectionQuestion.Variables }; } aux.Description = aux.Description.Replace("%", string.Empty).Replace("|", string.Empty); foreach (var option in aux.Options) { option.Description = option.Description.Replace("%", string.Empty).Replace("|", string.Empty); } return(aux); } return(null); }
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); }
public void UpdateQuestion(SingleSelectionQuestion question) { _dbContext.SingleSelectionQuestions.Update(question); _dbContext.SaveChanges(); }
public void AddQuestion(SingleSelectionQuestion question) { _dbContext.SingleSelectionQuestions.Add(question); _dbContext.SaveChanges(); }