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));
        }
Example #2
0
 public void AddCustomMappings(params Action <TSource, TDestination>[] customMappings)
 {
     CustomMappings.AddRange(customMappings);
 }
Example #3
0
 public void AddCustomMapping(Action <TSource, TDestination> customMapping)
 {
     CustomMappings.Add(customMapping);
 }