public static void Map_Exam_To_AssignedExam(Exam exam, AssignedExam assignedExam) { assignedExam.AutoPointsCalculation = exam.AutoPointsCalculation; assignedExam.Duration = exam.Duration; assignedExam.Title = exam.Title; if (exam.Questions.Count > 0) { foreach (var q in exam.Questions) { Question question = new Question(); question.Text = q.Text; question.QuestionNumInExam = q.QuestionNumInExam; question.Points = q.Points; if (q.Answers.Count > 0) { foreach (var a in q.Answers) { Answer answer = new Answer(); answer.Text = a.Text; answer.AnswerNumInQuestion = a.AnswerNumInQuestion; answer.IsCorrect = a.IsCorrect; question.Answers.Add(answer); } } assignedExam.Questions.Add(question); } } }
public async Task <PartialViewResult> AssignExamToCourse(CreateAssignedExamVM createAssignedExamVM) { if (!ModelState.IsValid) { ViewBag.ExamsSelectList = await GenerateExamsSelectList(createAssignedExamVM.TeacherId); return(PartialView("_CreateAssignedExamPartial", createAssignedExamVM)); } var exam = await _unitOfWork.Exams.GetNotAssignedFullExamAsync(createAssignedExamVM.ExamId); if (exam == null) { ModelState.AddModelError(nameof(CreateAssignedExamVM.ExamId), "Exam Not Found"); } var course = await _unitOfWork.Courses.GetAsync(createAssignedExamVM.CourseId); if (course == null) { ModelState.AddModelError("", "Course Not Found, Please Contact Admin"); } else { if (course.StartDate > createAssignedExamVM.StartDate || course.FinishDate < createAssignedExamVM.StartDate) { ModelState.AddModelError(nameof(CreateAssignedExamVM.StartDate), $"Exam start date must be within course time limits: {course.StartDate.ToShortDateString()} - {course.FinishDate.ToShortDateString()}"); } if (course.FinishDate < createAssignedExamVM.FinishDate || course.StartDate > createAssignedExamVM.FinishDate) { ModelState.AddModelError(nameof(CreateAssignedExamVM.FinishDate), $"Exam finish date must be within course time limits: {course.StartDate.ToShortDateString()} - {course.FinishDate.ToShortDateString()}"); } } if (!ModelState.IsValid) { ViewBag.ExamsSelectList = await GenerateExamsSelectList(createAssignedExamVM.TeacherId); return(PartialView("_CreateAssignedExamPartial", createAssignedExamVM)); } AssignedExam assignedExam = _mapper.Map <AssignedExam>(createAssignedExamVM); assignedExam.Course = course; assignedExam.ExamType = ExamType.AssignedExam; CustomMappings.Map_Exam_To_AssignedExam(exam, assignedExam); createAssignedExamVM.IsCreated = true; await _unitOfWork.AssignedExams.AddAsync(assignedExam); await _unitOfWork.SaveAsync(); return(PartialView("_CreateAssignedExamPartial", createAssignedExamVM)); }
// GET: ExamsController/Delete/5 public async Task <ActionResult> Delete(long id, Actions returnAction) { var c = HttpContext.Request.Path; var exam = await _unitOfWork.Exams.GetExamWithQuestionsAndAnswerAsync(id); if (exam == null) { return(NotFound()); } _unitOfWork.Exams.Remove(exam); await _unitOfWork.SaveAsync(); if (returnAction == Actions.Details) { AssignedExam assignedExam = exam as AssignedExam; if (assignedExam != null) { return(RedirectToAction(nameof(CoursesController.Details), "Courses", new { id = assignedExam.CourseId })); } } return(RedirectToAction(nameof(List))); }