public SubjectEditViewModel(int subjectId) { SubjectId = subjectId; Title = SubjectId == 0 ? "Создание предмета" : "Редактирование предмета"; Modules = ModulesManagementService.GetModules().Where(e => e.Visible).Select(e => new ModulesViewModel(e)).ToList(); FillSubjectGroups(); if (subjectId != 0) { var subject = SubjectManagementService.GetSubject(subjectId); SubjectId = subjectId; ShortName = subject.ShortName; DisplayName = subject.Name; foreach (var module in Modules) { if (subject.SubjectModules.Any(e => e.ModuleId == module.ModuleId)) { module.Checked = true; } } SelectedGroups = new List <int>(); foreach (var group in Groups) { var groupId = int.Parse(group.Value); if (subject.SubjectGroups.Any(e => e.GroupId == groupId)) { SelectedGroups.Add(groupId); } } } }
public SubjectWorkingViewModel(int subjectId) { SubjectId = subjectId; Subject = SubjectManagementService.GetSubject(subjectId); SubjectName = Subject.Name; Modules = Subject.SubjectModules.OrderBy(e => e.Module.Order).Select(e => new ModulesViewModel(e.Module)).ToList(); NotVisibleModules = ModulesManagementService.GetModules().Where(e => !e.Visible).Select(e => new ModulesViewModel(e)).ToList(); }
public SubjectWorkingViewModel(int subjectId) { SubjectId = subjectId; Subject = SubjectManagementService.GetSubject(new Query <Subject>(e => e.Id == subjectId) .Include(e => e.SubjectModules.Select(x => x.Module)) .Include(e => e.SubjectLecturers.Select(x => x.Lecturer.User))); SubjectName = Subject.Name; Modules = Subject.SubjectModules.OrderBy(e => e.Module.Order).Select(e => new ModulesViewModel(e.Module)) .ToList(); NotVisibleModules = ModulesManagementService.GetModules().Where(e => !e.Visible) .Select(e => new ModulesViewModel(e)).ToList(); }
public LmsViewModel(int userId, bool isLector) { var s = SubjectManagementService.GetUserSubjects(userId).Where(e => !e.IsArchive); Subjects = s.Select(e => new SubjectViewModel(e)).ToList(); CurrentSubjects = Subjects.Count(); TotalSubject = SubjectManagementService.GetSubjects().Count(); ComplexSubjects = s .Where(cs => ModulesManagementService.GetModules(cs.Id).Any(m => m.ModuleType == ModuleType.ComplexMaterial)) .Select(e => new SubjectViewModel(e)).ToList(); CourseProjectSubjects = s.Where(cs => ModulesManagementService.GetModules(cs.Id).Any(m => m.ModuleType == ModuleType.YeManagment)) .Select(e => new SubjectViewModel(e)).ToList(); var modelStudents = new List <int>(); CurrentStudents = 0; if (isLector) { TotalStudents = StudentManagementService.GetStudents().Count(); foreach (var subjects in SubjectManagementService.GetUserSubjects(userId)) { if (subjects.SubjectGroups != null) { foreach (var group in subjects.SubjectGroups) { foreach (var student in group.SubjectStudents) { if (modelStudents.All(e => e != student.StudentId)) { modelStudents.Add(student.StudentId); CurrentStudents += 1; } } } } } } }
public void Save(int userId) { var subject = new Subject { Id = SubjectId, Name = DisplayName, ShortName = ShortName, SubjectModules = new Collection <SubjectModule>(), SubjectLecturers = new Collection <SubjectLecturer>() }; foreach (var module in Modules) { if (module.Checked) { if (module.Type == ModuleType.Labs) { subject.SubjectModules.Add(new SubjectModule { ModuleId = ModulesManagementService.GetModules().First(e => e.ModuleType == ModuleType.ScheduleProtection).Id, SubjectId = SubjectId }); subject.SubjectModules.Add(new SubjectModule { ModuleId = ModulesManagementService.GetModules().First(e => e.ModuleType == ModuleType.StatisticsVisits).Id, SubjectId = SubjectId }); subject.SubjectModules.Add(new SubjectModule { ModuleId = ModulesManagementService.GetModules().First(e => e.ModuleType == ModuleType.Results).Id, SubjectId = SubjectId }); } subject.SubjectModules.Add(new SubjectModule { ModuleId = module.ModuleId, SubjectId = SubjectId }); } } subject.SubjectLecturers.Add(new SubjectLecturer { SubjectId = SubjectId, LecturerId = userId }); if (SelectedGroups != null) { subject.SubjectGroups = SelectedGroups.Select(e => new SubjectGroup { GroupId = e, SubjectId = SubjectId }).ToList(); } else { subject.SubjectGroups = new Collection <SubjectGroup>(); } Subject sub = SubjectManagementService.SaveSubject(subject); foreach (var module in sub.SubjectModules) { if (module.ModuleId == 9) { MaterialsManagementService.CreateRootFolder(module.Id, sub.Name); } } }
public void Save(int userId, string color) { var subject = new Subject { Id = SubjectId, Name = DisplayName, ShortName = ShortName, Color = color, SubjectModules = new Collection <SubjectModule>(), SubjectLecturers = new Collection <SubjectLecturer>() }; foreach (var module in Modules) { if (module.Checked) { if (module.Type == ModuleType.Labs) { subject.SubjectModules.Add(new SubjectModule { ModuleId = ModulesManagementService.GetModules() .First(e => e.ModuleType == ModuleType.ScheduleProtection).Id, SubjectId = SubjectId }); subject.SubjectModules.Add(new SubjectModule { ModuleId = ModulesManagementService.GetModules() .First(e => e.ModuleType == ModuleType.StatisticsVisits).Id, SubjectId = SubjectId }); subject.SubjectModules.Add(new SubjectModule { ModuleId = ModulesManagementService.GetModules() .First(e => e.ModuleType == ModuleType.Results).Id, SubjectId = SubjectId }); } subject.SubjectModules.Add(new SubjectModule { ModuleId = module.ModuleId, SubjectId = SubjectId }); } } subject.SubjectLecturers.Add(new SubjectLecturer { SubjectId = SubjectId, LecturerId = userId }); var selectedGroupdsOld = new List <SubjectGroup>(); if (SubjectId != 0) { selectedGroupdsOld = SubjectManagementService .GetSubject(new Query <Subject>(e => e.Id == SubjectId).Include(e => e.SubjectGroups)).SubjectGroups .ToList(); } var oldGroupIds = selectedGroupdsOld.Select(x => x.GroupId); if (SelectedGroups != null) { UpdateNewAssignedGroups(Modules.Where(e => e.Checked), SelectedGroups.Where(e => !oldGroupIds.Contains(e)).ToList()); subject.SubjectGroups = SelectedGroups.Select(e => new SubjectGroup { GroupId = e, SubjectId = SubjectId, IsActiveOnCurrentGroup = true }).ToList(); } else { subject.SubjectGroups = new Collection <SubjectGroup>(); } foreach (var subjectSubjectGroup in selectedGroupdsOld) { if (subject.SubjectGroups.Any(e => e.GroupId == subjectSubjectGroup.GroupId)) { continue; } TestsManagementService.UnlockAllTestForGroup(subjectSubjectGroup.GroupId); SubjectManagementService.DeleteNonReceivedUserFiles(subjectSubjectGroup.GroupId); } var acp = Context.AssignedCourseProjects.Include("Student") .Where(x => x.CourseProject.SubjectId == subject.Id); foreach (var a in acp) { var flag = subject.SubjectGroups.Any(s => s.GroupId == a.Student.GroupId); if (!flag) { Context.AssignedCourseProjects.Remove(a); } CPManagementService.DeletePercenageAndVisitStatsForUser(a.StudentId); } var cpg = Context.CourseProjectGroups.Where(x => x.CourseProject.SubjectId == subject.Id); foreach (var a in cpg) { var flag = subject.SubjectGroups.Any(s => s.GroupId == a.GroupId); if (!flag) { Context.CourseProjectGroups.Remove(a); } } Context.SaveChanges(); var sub = SubjectManagementService.SaveSubject(subject); SubjectId = sub.Id; CreateOrUpdateSubGroups(); foreach (var module in sub.SubjectModules) { if (module.ModuleId == 9) { MaterialsManagementService.CreateRootFolder(module.Id, sub.Name); } } }