Exemplo n.º 1
0
 private void CalculateSchedule(ClassGroupSchedule classGroup, ScheduleBoard board)
 {
     foreach (ClassRoomSchedule classRoom in classGroup.ClassRooms)
     {
         //foreach (CourseSubjectSchedule courseSubject in classGroup.TrainingProgram.CourseSubjects)
         foreach (ClassCourseSchedule course in classRoom.Courses)
         {
             StoneCastle.Scheduler.Models.TimetableModel tt = classRoom.Timetable;
             this.CalculateTimetable(tt, course, board);
         }
         Logger.Debug($"Calculated class: {classRoom.Name}");
     }
 }
Exemplo n.º 2
0
        private void CalculateClassGroupSchedule(ClassGroupSchedule cg)
        {
            if (cg == null)
            {
                Logger.Error($"Null exception: cg");
                throw new ArgumentNullException("cg");
            }
            TrainingProgramSchedule trainingProgram = cg.TrainingProgram;

            if (trainingProgram == null)
            {
                Logger.Error($"Class-group does not containt Training Program.");
                throw new InvalidOperationException($"ClassGroup {cg.Id} does not containt training program.");
            }

            trainingProgram.Timetable = this.timetableService.GetProgramTimetable(trainingProgram.Id);

            List <Course> css = this.UnitOfWork.CourseRepository.GetCourseSubjectByTrainingProgram(trainingProgram.Id).ToList();

            var mapper = config.CreateMapper();

            List <CourseSchedule> courseSubjects = mapper.Map <List <Course>, List <CourseSchedule> >(css);

            trainingProgram.CourseSubjects = courseSubjects;

            int shiftPerDay  = trainingProgram.Timetable.ShiftPerDay;
            int slotPerShift = trainingProgram.Timetable.SlotPerShift;

            foreach (ClassRoomSchedule cr in cg.ClassRooms)
            {
                StoneCastle.Scheduler.Models.TimetableModel tt = this.timetableService.GetWorkingTimeTable(shiftPerDay, slotPerShift);
                tt = tt.Join(trainingProgram.Timetable);

                cr.Timetable = tt;

                // Get Courses
                List <ClassCourse>         courses         = this.UnitOfWork.ClassCourseRepository.GetCoursesByClassRoom(cr.Id).ToList();
                List <ClassCourseSchedule> courseSchedules = mapper.Map <List <ClassCourse>, List <ClassCourseSchedule> >(courses);
                cr.Courses = courseSchedules;
            }
        }