Beispiel #1
0
        public IList <ClassDetails> GetClassesSortedByPeriod()
        {
            IList <ClassDetails> classes;
            int?teacherId = null;
            int?studentId = null;

            if (Context.RoleId == CoreRoles.TEACHER_ROLE.Id)
            {
                teacherId = Context.PersonId;
                classes   = GetTeacherClasses(Context.SchoolYearId.Value, Context.PersonId.Value);
            }
            else if (Context.RoleId == CoreRoles.STUDENT_ROLE.Id)
            {
                studentId = Context.PersonId;
                classes   = GetStudentClasses(Context.SchoolYearId.Value, Context.PersonId.Value);
            }
            else
            {
                throw new NotImplementedException();
            }

            var schedule = ServiceLocator.ClassPeriodService.GetSchedule(teacherId, studentId, null,
                                                                         Context.NowSchoolYearTime.Date, Context.NowSchoolYearTime.Date).OrderBy(x => x.PeriodOrder);
            var res = new List <ClassDetails>();

            foreach (var classPeriod in schedule)
            {
                var c = classes.FirstOrDefault(x => x.Id == classPeriod.ClassId);
                if (c != null && res.All(x => x.Id != c.Id))
                {
                    res.Add(c);
                }
            }
            classes = classes.Where(x => res.All(y => y.Id != x.Id)).OrderBy(x => x.Name).ToList();


            var l = res.Concat(classes);
            var classDetailses = l as IList <ClassDetails> ?? l.ToList();

            foreach (var cls in classDetailses)
            {
                cls.ClassTeachers = ClassTeacherStorage.GetClassTeachers(cls.Id, null);
            }
            return(classDetailses.ToList());
        }
Beispiel #2
0
        public IList <ClassDetails> GetTeacherClasses(int schoolYearId, int teacherId, int?markingPeriodId = null)
        {
            var res           = new List <ClassDetails>();
            var classes       = ClassStorage.GetAll();
            var classteachers = ClassTeacherStorage.GetAll();

            foreach (var @class in classes)
            {
                if (@class.SchoolYearRef != schoolYearId)
                {
                    continue;
                }
                if (classteachers.Any(x => x.ClassRef == @class.Id && x.PersonRef == teacherId))
                {
                    var cd = GetClassDetailsById(@class.Id);
                    if (!markingPeriodId.HasValue || cd.MarkingPeriodClasses.Any(x => x.MarkingPeriodRef == markingPeriodId.Value))
                    {
                        res.Add(cd);
                    }
                }
            }
            return(res);
        }
Beispiel #3
0
 public bool ClassTeacherExists(int classRef, int userId)
 {
     return(ClassTeacherStorage.Exists(classRef, userId));
 }
Beispiel #4
0
 public IList <ClassTeacher> GetClassTeachers(int?classId, int?teacherId)
 {
     return(ClassTeacherStorage.GetClassTeachers(classId, teacherId));
 }
Beispiel #5
0
 public void DeleteTeachers(IList <ClassTeacher> classTeachers)
 {
     ClassTeacherStorage.Delete(classTeachers);
 }
Beispiel #6
0
 public void EditTeachers(IList <ClassTeacher> classTeachers)
 {
     ClassTeacherStorage.Update(classTeachers);
 }
Beispiel #7
0
 public void AddTeachers(IList <ClassTeacher> classTeachers)
 {
     ClassTeacherStorage.Add(classTeachers);
 }