Esempio n. 1
0
        public ActionResult TeachersContent(int school, int year)
        {
            // get subjects
            var subjects = repository.GetSchoolSubjects(school).OrderBy(x => x.name);


            var viewmodel = new List <SubjectTeacher>();

            foreach (var entry in subjects)
            {
                var subject        = entry;
                var subjectTeacher = db.subject_teachers.Where(x => x.year == year && x.subjectid == subject.id);

                var model = new SubjectTeacher()
                {
                    subjectid   = subject.id,
                    subjectname = subject.name
                };

                foreach (var teacher in subjectTeacher.GroupBy(x => x.user))
                {
                    var subjectentry = new SubjectTeacherEntry();
                    subjectentry.teachername = teacher.Key.ToName();
                    foreach (var klass in teacher.OrderBy(x => x.school_class.name))
                    {
                        subjectentry.AllocatedClasses.Add(new IdName(klass.classid, klass.school_class.name));
                    }
                    model.teachers.Add(subjectentry);
                }
                viewmodel.Add(model);
            }

            return(View(viewmodel));
        }
Esempio n. 2
0
        public ActionResult TeachersEdit(long subject, int year, int school)
        {
            // get active teachers
            var teachers = repository.GetUsers()
                           .Where(x => (x.usergroup == (int)UserGroup.TEACHER || x.usergroup == (int)UserGroup.HEAD) &&
                                  x.schoolid.HasValue && x.schoolid.Value == school &&
                                  x.employments.Count != 0 &&
                                  x.employments.Any(y => y.start_date.HasValue && y.start_date.Value.Year <= year &&
                                                    (!y.end_date.HasValue || y.end_date.Value.Year >= year)))
                           .OrderBy(x => x.name)
                           .Select(x => new IdName()
            {
                id   = x.id.ToString(),
                name = x.ToName(false)
            });

            var s = repository.GetSchoolSubject(subject);

            var viewmodel = new SubjectTeacher();

            viewmodel.subjectid   = s.id;
            viewmodel.subjectname = s.name;

            var subjects = db.subject_teachers.Where(x => x.subjectid == subject);

            if (!subjects.Any())
            {
                // nothing
                var subjectentry = new SubjectTeacherEntry();
                subjectentry.teachers = teachers.Select(x => new SelectListItem()
                {
                    Text  = x.name,
                    Value = x.id
                });
                subjectentry.classes = db.school_classes
                                       .Where(x => x.schoolid == school)
                                       .OrderBy(x => x.name)
                                       .Select(x => new SelectListItem()
                {
                    Text  = x.name,
                    Value = x.id.ToString()
                });
                viewmodel.teachers.Add(subjectentry);
            }
            else
            {
                foreach (var teacher in subjects.GroupBy(x => x.user))
                {
                    var subjectentry = new SubjectTeacherEntry();
                    subjectentry.classes = db.school_classes
                                           .Where(x => x.schoolid == school)
                                           .OrderBy(x => x.name)
                                           .Select(x => new SelectListItem()
                    {
                        Text  = x.name,
                        Value = x.id.ToString()
                    });
                    IGrouping <user, subject_teacher> teacher1 = teacher;
                    subjectentry.teachers = teachers.Select(x => new SelectListItem()
                    {
                        Text     = x.name,
                        Value    = x.id,
                        Selected = x.id == teacher1.Key.id.ToString()
                    });
                    foreach (var klass in teacher.OrderBy(x => x.school_class.name))
                    {
                        subjectentry.AllocatedClasses.Add(new IdName(klass.classid, klass.school_class.name));
                    }
                    viewmodel.teachers.Add(subjectentry);
                }
            }

            return(View(viewmodel));
        }