コード例 #1
0
        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);
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
        }