public ActionResult AddStudentToProject(StudentToProjectViewModel model) { if (Session["UserId"] == null) { return(RedirectToAction("Login", "Home")); } else if (Session["UserType"].ToString() != UserType.Administrator.ToString() && Session["UserType"].ToString() != UserType.Coordinator.ToString()) { TempData["msg"] = "You don't have enough rights"; return(RedirectToAction("Login", "Home")); } ViewBag.StudentID = new SelectList(db.Students.Include("Project").Where(s => s.Project == null).Select(s => new { StudentId = s.StudentId, FieldName = s.User.Name + "(" + s.User.Email + ")" }), "StudentId", "FieldName"); ViewBag.ProjectID = new SelectList(db.Projects.Where(s => s.GroupMembers.Count <= 4).Select(s => new { ProjectId = s.ProjectId, FieldName = s.Title + "(Project-ID: " + s.ProjectId + ")" }), "ProjectId", "FieldName"); if (ModelState.IsValid) { //db.Projects.Add(model); var Project = db.Projects.Include("GroupMembers").Where(s => s.ProjectId == model.ProjectID).FirstOrDefault(); if (Project == null) { ModelState.AddModelError(string.Empty, "Invalid Project Selection"); TempData["msg"] = "Invalid Project Selection"; return(View(model)); } var Student = db.Students.Where(s => s.StudentId == model.StudentID).FirstOrDefault(); if (Student == null) { ModelState.AddModelError(string.Empty, "Invalid StudentSelection"); TempData["msg"] = "Invalid Student Selection"; return(View(model)); } var exists = Project.GroupMembers.Where(s => s.StudentId == Student.StudentId).FirstOrDefault(); if (exists != null) { ModelState.AddModelError(string.Empty, "Student is already in this Project"); TempData["msg"] = "Student is already in this Project"; return(View(model)); } Project.GroupMembers.Add(Student); TempData["msg"] = "Student assigned to Project"; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(model)); }
public ActionResult RemoveStudent(StudentToProjectViewModel model) { if (Session["UserId"] == null) { return(RedirectToAction("Login", "Home")); } else if (Session["UserType"].ToString() != UserType.Administrator.ToString() && Session["UserType"].ToString() != UserType.Coordinator.ToString()) { TempData["msg"] = "You don't have enough rights"; return(RedirectToAction("Login", "Home")); } if (ModelState.IsValid) { var Project = db.Projects.Include("GroupMembers").Where(s => s.ProjectId == model.ProjectID).FirstOrDefault(); if (Project == null) { ModelState.AddModelError(string.Empty, "Invalid Project Selection"); TempData["msg"] = "Invalid Project Selection"; return(RedirectToAction("Index")); } var Student = db.Students.Where(s => s.StudentId == model.StudentID).FirstOrDefault(); if (Student == null) { ModelState.AddModelError(string.Empty, "Invalid Student Selection"); TempData["msg"] = "Invalid Student Selection"; return(RedirectToAction("Index")); } var exists = Project.GroupMembers.Where(s => s.StudentId == Student.StudentId).FirstOrDefault(); if (exists == null) { ModelState.AddModelError(string.Empty, "Student is already in this Project"); TempData["msg"] = "Student is already in this Project"; return(RedirectToAction("Index")); } Project.GroupMembers.Remove(exists); db.SaveChanges(); TempData["msg"] = "Student Removed From Project"; return(RedirectToAction("Index")); } return(RedirectToAction("Index")); }