public ActionResult Add(AddDropCourseViewModel model) { if (ModelState.IsValid) { try { string studentId = User.Identity.GetUserId(); StudentCourse sc = new StudentCourse { CourseId = model.CourseId, StudentId = studentId, Year = DateTime.Now.Year.ToString(), Semester = DateTime.Now.Month < 7 ? 1 : 2 }; context.StudentCourses.Add(sc); context.SaveChanges(); TempData["SuccessMessage"] = "You have been enrolled in the courses."; } catch (Exception ex) { TempData["ErrorMessage"] = ex.Message; } } return(RedirectToAction("AddDrop")); }
public ActionResult Drop(AddDropCourseViewModel model) { if (ModelState.IsValid) { try { StudentCourse sc = context.StudentCourses.Find(model.StudentCourseId); context.StudentCourses.Remove(sc); context.SaveChanges(); TempData["SuccessMessage"] = "You have droped the course."; } catch (Exception ex) { TempData["ErrorMessage"] = ex.Message; } } return(RedirectToAction("AddDrop")); }
public ActionResult AddDrop() { Student student = (Student)context.Users.Find(User.Identity.GetUserId()); string year = DateTime.Now.Year.ToString(); int semester = DateTime.Now.Month < 7 ? 1 : 2; AddDropCourseViewModel model = new AddDropCourseViewModel(); IEnumerable <StudentCourse> currentCourses = context.StudentCourses.Include("Student").Include("Course").Where(m => m.StudentId == student.Id).Where(m => m.Year == year).Where(m => m.Semester == semester).ToList(); IEnumerable <StudentCourse> pastYearsCourses = context.StudentCourses.Include("Student").Include("Course").Where(m => m.StudentId == student.Id).Where(m => m.Year != year).ToList(); IEnumerable <StudentCourse> pastSemester = context.StudentCourses.Include("Student").Include("Course").Where(m => m.StudentId == student.Id).Where(m => m.Year == year).Where(m => m.Semester <= semester).ToList(); IEnumerable <StudentCourse> availableCourses = pastYearsCourses.Concat(pastSemester).ToList(); model.AvailableCourses = availableCourses.Except(currentCourses, new StudentCourseComparer()).ToList(); model.CurrentCourses = currentCourses; return(View(model)); }