public JsonResult Index(CourseViewModel selection) { // Save the course try { // Populate selection = PopulateViewModel(selection); // Validate if (!ModelState.IsValid) return Json(new {status = "error", message = "Validation Errors"}); // Map var course = Mapper.Map<CourseViewModel, Course>(selection); // Add _courseService.AddCourse(course); // Respond return Json(new { status = "success", message = $"{course.CourseNumber} {course.CourseName} has been created", id = course.CourseNumber }); } // The course name or number already exists catch (Exception ex) when (ex is CourseNumberNotUniqueException || ex is CourseNameNotUniqueException) { return Json( new { status = "error", message = "This Course Name or Number already exists" }); } }
public JsonResult Edit(CourseViewModel selection) { try { _courseService.EditCourse(selection.CourseNumber, selection.CourseName, selection.CourseDescription, selection.WeeklyHours); // Respond return Json(new { status = "success", message = $"{selection.CourseNumber} {selection.CourseName} has been edited", id = selection.CourseNumber }); } catch (CourseDoesNotExistException) { return Json(new {status = "error", message = "Course Does not exist"}); } catch (CourseNameNotUniqueException) { return Json(new {status = "error", message = "The Course Name must be Unique"}); } }
/// <summary> /// Populates the view model. /// </summary> /// <param name="courseViewModel">The course view model.</param> /// <returns></returns> private CourseViewModel PopulateViewModel(CourseViewModel courseViewModel) { courseViewModel.Courses = _courseService.GetCourses; return courseViewModel; }
/// <summary> /// Return a partial view for the Add Course form /// </summary> /// <param name="courseNumber">The course number.</param> /// <returns></returns> public PartialViewResult Add(string courseNumber = null) { var course = _courseService.GetCourses.SingleOrDefault(c => c.CourseNumber == courseNumber); if (course == null) return PartialView("_addCourseContent", new CourseViewModel()); var vm = new CourseViewModel { CourseDescription = course.CourseDescription, WeeklyHours = course.WeeklyHours, CourseNumber = course.CourseNumber, CourseName = course.CourseName, IsEdit = true }; return PartialView("_addCourseContent", vm); }