Пример #1
0
        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);
                    }
                }
            }
        }
Пример #2
0
 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();
 }
Пример #3
0
 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();
 }
Пример #4
0
        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;
                                }
                            }
                        }
                    }
                }
            }
        }
Пример #5
0
        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);
                }
            }
        }