コード例 #1
0
        public ActionResult Subject()
        {
			List<Subject> subjects = new List<Subject>();
			List<SubjectVM> subjectsVM = new List<SubjectVM>();

			List<Group> groups = _teacherService.GetAllGroups();
			List<GroupVM> groupsVM = Mapper.Map<List<GroupVM>>(groups);

			if (User.IsInRole("Student"))
			{
				subjects = _subjectService.GetStudentSubjects();
				subjectsVM = Mapper.Map<List<Subject>, List<SubjectVM>>(subjects);
			}

			else if (User.IsInRole("Teacher"))
			{
				subjects = _subjectService.GetList();
				subjectsVM = Mapper.Map<List<Subject>, List<SubjectVM>>(subjects);

				Teacher teacher = _teacherService.GetTeacherByUserId(_teacherService.UserId);

				foreach (var c in teacher.Subjects)
				{
					subjectsVM.Find(x => x.Id == c.SubjectId).Join = true;
				}

				foreach (var i in subjectsVM)
				{
					i.Groups = Mapper.Map<List<GroupVM>>(groups);
				}

				foreach (var a in subjectsVM)
				{
					foreach (var b in a.GroupSubject)
					{
						a.Groups.Find(x => x.Id == b.GroupId).Join = true;
					}
				}
			}

			else
			{
				subjects = _subjectService.GetList();
				subjectsVM = Mapper.Map<List<Subject>, List<SubjectVM>>(subjects);
			}
			SubjectGroupListsVM subjectGroupList = new SubjectGroupListsVM
			{
				Subjects = subjectsVM,
				AllGroups = groupsVM
			};

			return View(subjectGroupList);
        }
コード例 #2
0
        public void TeacherConfigure(SubjectGroupListsVM subjectGroupList)
        {
            Teacher teacher = GetTeacherByUserId(UserId);

            if (teacher != null)
            {
                foreach (var i in subjectGroupList.Subjects)
                {
                    Subject subject = _unitOfWork.SubjectRepository.Get(i.Id);
                    if (i.Join == false && teacher.Subjects.FirstOrDefault(t => t.SubjectId == i.Id) != null)
                    {
                        DeleteTeacherFromSubject(i.Id, teacher.Id);
                    }
                    else if (i.Join && teacher.Subjects.FirstOrDefault(t => t.SubjectId == i.Id) == null)
                    {
                        AddTeacherToSubject(i.Id, teacher.Id);
                    }

                    foreach (var x in i.Groups)
                    {
                        if (x.Join)
                        {
                            if (subject.GroupSubject == null || subject.GroupSubject.Where(t => t.GroupId == x.Id).FirstOrDefault() == null)
                            {
                                AddSubjectToGroup(i.Id, x.Id);
                                if (teacher.Groups.Where(t => t.GroupId == i.Id).FirstOrDefault() == null)
                                {
                                    AddTeacherToGroup(x.Id, teacher.Id);
                                }
                            }
                        }
                        else if (!(x.Join))
                        {
                            if (subject.GroupSubject != null && subject.GroupSubject.Where(t => t.GroupId == x.Id).FirstOrDefault() != null)
                            {
                                DeleteSubjectFromGroup(i.Id, x.Id);
                            }
                        }
                    }
                }

                var groups = _unitOfWork.GroupRepository.GetAll();
                foreach (var group in groups)
                {
                    var subjectsTG = subjectGroupList.Subjects.Where(x => x.Groups.Where(t => t.Id == group.Id && t.Join == false) != null);
                    if (subjectsTG != null && subjectsTG.Count() == subjectGroupList.Subjects.Count())
                    {
                        DeleteTeacherFromGroup(group.Id, teacher.Id);
                    }
                }
            }
        }
コード例 #3
0
		public ActionResult TeacherConfigure(SubjectGroupListsVM subjectGroupList)
		{
			_teacherService.TeacherConfigure(subjectGroupList);
			return RedirectToAction("Subject");
		}