/// <summary> /// Add user to course via UserAddCourseHelperModel /// </summary> public bool AddUserToCourse(AdminAddCourseToUserViewModel model) { var courseInstance = _db.CourseInstances.SingleOrDefault(x => x.Id == model.CourseId); if (courseInstance == null) { return(false); } var user = _db.AspNetUsers.SingleOrDefault(x => x.Id == model.UserId); if (user == null) { return(false); } if (model.Position == 1) { courseInstance.AspNetUsers.Add(user); AddUserToCourseAssignments(user.Id, courseInstance.Id); } else { Teacher teacher = new Teacher { AspNetUser = user, IsAssistant = model.Position != 2 }; courseInstance.Teachers.Add(teacher); if (!_userService.IsUserInRoleByUserId(user.Id, "Teacher")) { _userService.AddUserToRoleByUserId(user.Id, "Teacher"); } } try { _db.SaveChanges(); return(true); } catch (Exception e) { return(false); } }
/// <summary> /// Remove a user from a course via UserAddCourseHelperModel which contains the course instance ID, /// the user ID and the position the user currently occupies in the course. /// </summary> public bool RemoveUserFromCourse(AdminAddCourseToUserViewModel model) { var courseInstance = _db.CourseInstances.SingleOrDefault(x => x.Id == model.CourseId); if (courseInstance == null) { return(false); } var user = _db.AspNetUsers.SingleOrDefault(x => x.Id == model.UserId); if (user == null) { return(false); } if (model.Position == 1) { courseInstance.AspNetUsers.Remove(user); } else { var teacher = courseInstance.Teachers.SingleOrDefault(x => x.AspNetUser == user && x.IsAssistant == (model.Position != 2)); courseInstance.Teachers.Remove(teacher); var teacherCourses = _db.CourseInstances.SingleOrDefault(x => x.Teachers.Any(y => y.AspNetUser.Id == user.Id)); if (teacherCourses != null && !teacherCourses.Teachers.Any()) { _userService.RemoveUserFromRoleByUserId(user.Id, "Teacher"); } } try { _db.SaveChanges(); return(true); } catch (Exception e) { return(false); } }
/// <summary> /// Adds user to course by passing a view model including the userId and the courseInstanceId /// </summary> public ActionResult AddUserToCourse(AdminAddCourseToUserViewModel model) { return(Json(_courseService.AddUserToCourse(model))); }
/// <summary> /// Removes user from course by passing a AddCourseToUserViewModel with the courseInstanceId and userId /// </summary> public ActionResult RemoveUserFromCourse(AdminAddCourseToUserViewModel model) { return(Json(_courseService.RemoveUserFromCourse(model))); }