public bool UnbindCoursesFromCompany(int compId, MasterCourses course) { var company = db.Companies.FirstOrDefault(i => i.Id == compId); if (company == null) { return(false); } var compCourses = company.CompanyCourses.Where(i => i.CourseId == course.Id); if (compCourses.Any()) { db.CompanyCourses.RemoveRange(compCourses); } var depCourses = company.Departments.SelectMany(i => i.DepartmentCourses).Where(w => w.CourseId == course.Id); if (depCourses.Any()) { db.DepartmentCourses.RemoveRange(depCourses); } var userProfiles = company.UserProfiles; foreach (var user in userProfiles) { var watched = user.UserModulesWatched.Where(i => i.CourseID == course.Id); if (watched.Any()) { db.UserModulesWatched.RemoveRange(watched); } var exams = user.Exams.Where(i => i.CourseId == course.Id); if (exams.Any()) { var answers = exams.SelectMany(i => i.UserAnswers); if (answers.Any()) { db.UserAnswers.RemoveRange(answers); } db.Exams.RemoveRange(exams); } var userCourses = user.UserCourses.Where(i => i.MasterCourseId == course.Id); if (userCourses.Any()) { db.UserCourses.RemoveRange(userCourses); } } try{ db.SaveChanges(); } catch (Exception) { return(false); } return(true); }
public static bool UnbindCoursesFrom(int id, FilterIdType type, MasterCourses course) { switch (type) { case FilterIdType.CompanyId: return(courseRepo.UnbindCoursesFromCompany(id, course)); case FilterIdType.DepartmentId: return(courseRepo.UnbindCoursesFromDepartment(id, course)); case FilterIdType.UserId: return(courseRepo.UnbindCoursesFromUser(id, course)); default: return(false); } }
public bool UnbindCoursesFromUser(int userId, MasterCourses course) { var user = db.UserProfiles.FirstOrDefault(i => i.Id == userId); if (user == null) { return(false); } var watched = user.UserModulesWatched.Where(i => i.CourseID == course.Id); if (watched.Any()) { db.UserModulesWatched.RemoveRange(watched); } var exams = user.Exams.Where(i => i.CourseId == course.Id); if (exams.Any()) { var answers = exams.SelectMany(i => i.UserAnswers); if (answers.Any()) { db.UserAnswers.RemoveRange(answers); } db.Exams.RemoveRange(exams); } var userCourses = user.UserCourses.Where(i => i.MasterCourseId == course.Id); if (userCourses.Any()) { db.UserCourses.RemoveRange(userCourses); } try { db.SaveChanges(); } catch (Exception) { return(false); } return(true); }