public void UpdateOpen(StudentExamAnswerOpen entity, StudentExamAnswerOpen dbEntity) { dbEntity.Question = entity.Question; dbEntity.StudentExam = entity.StudentExam; dbEntity.Answer = entity.Answer; _eevaContext.SaveChanges(); }
//Add a StudentExamAnswer public IActionResult Answer(int id) { try { int?studentExamId = (int)TempData["studentExamId"]; StudentExam studentExam = _studentExamManager.Get(studentExamId); Question question = studentExam.Exam.ExamQuestions.ElementAt(id - 1); ExamQuestionViewModel examQuestionViewModel = NewExamQuestionViewModel(studentExam, question, id); //Checking which type of question it is if (question is QuestionOpen) { examQuestionViewModel.QuestionOpen = _questionManager.GetOpen(question.Id); StudentExamAnswerOpen studentExamAnswerOpen = _studentExamAnswerManager.GetByStudentExamAndQuestionOpen(studentExam.Id, question.Id); if (studentExamAnswerOpen != null) { examQuestionViewModel.Answer = studentExamAnswerOpen.Answer; } } else if (question is QuestionMultipleChoice) { examQuestionViewModel.QuestionMultipleChoice = _questionManager.GetMultipleChoice(question.Id); StudentExamAnswerMultipleChoice studentExamAnswer = _studentExamAnswerManager.GetByStudentExamAndQuestionMultiple(studentExam.Id, question.Id); if (studentExamAnswer != null) { List <int> answers = new List <int>(); answers.Add(studentExamAnswer.Answer.Id); examQuestionViewModel.Answers = answers; } } else { return(NotFound()); } TempData["studentExamId"] = studentExam.Id; return(View(examQuestionViewModel)); } catch (Exception) { return(NotFound()); } }
public IActionResult Answer(int id, string submit, [Bind("Question,Answer,Answers")] ExamQuestionViewModel examQuestionViewModel) { try { int studentExamId = (int)TempData["studentExamId"]; StudentExam studentExam = _studentExamManager.Get(studentExamId); Question question = studentExam.Exam.ExamQuestions.ElementAt(id - 1); //Checking which type of question it is if (question is QuestionOpen) { StudentExamAnswerOpen so = _studentExamAnswerManager.GetByStudentExamAndQuestionOpen(studentExamId, question.Id); StudentExamAnswerOpen studentExamAnswerOpen = new StudentExamAnswerOpen( _questionManager.GetOpen(question.Id), studentExam, examQuestionViewModel.Answer ); if (so == null) { _studentExamAnswerManager.Add(studentExamAnswerOpen); } else { _studentExamAnswerManager.UpdateOpen(studentExamAnswerOpen, so); } } else if (question is QuestionMultipleChoice) { StudentExamAnswerMultipleChoice sc = _studentExamAnswerManager.GetByStudentExamAndQuestionMultiple(studentExamId, question.Id); StudentExamAnswerMultipleChoice studentExamAnswerMultipleChoice = new StudentExamAnswerMultipleChoice( _questionManager.GetMultipleChoice(question.Id), studentExam, _answerMultipleChoiceManager.Get(examQuestionViewModel.Answers.FirstOrDefault()) ); if (sc == null) { _studentExamAnswerManager.Add(studentExamAnswerMultipleChoice); } else { _studentExamAnswerManager.UpdateMultiple(studentExamAnswerMultipleChoice, sc); } } else { return(NotFound()); } TempData["studentExamId"] = studentExam.Id; //Checking which type of submit button is used switch (submit) { case "Save and back to list": return(RedirectToAction(nameof(Index))); case "Next": int increase = id + 1; return(RedirectToAction("Answer", "ExamQuestion", new { id = increase })); case "Previous": int decrease = id - 1; return(RedirectToAction("Answer", "ExamQuestion", new { id = decrease })); default: return(NotFound()); } } catch (Exception) { return(NotFound()); } }