Beispiel #1
0
        public static Schedule FromWebSchedule(WebSchedule ws)
        {
            var result = new Schedule
                             {
                                 auditoriums = new List<Auditorium>(),
                                 calendars = new List<Calendar>(),
                                 disciplines = new List<Discipline>(),
                                 lessons = new List<Lesson>(),
                                 rings = new List<Ring>(),
                                 students = new List<Student>(),
                                 studentGroups = new List<StudentGroup>(),
                                 studentsInGroups = new List<StudentsInGroups>(),
                                 teachers = new List<Teacher>(),
                                 teacherForDisciplines = new List<TeacherForDiscipline>(),

                                 configOptions = new List<ConfigOption>(),
                                 lessonLogEvents = new List<LessonLogEvent>()
                             };

            foreach (var a in ws.auditoriums)
            {
                result.auditoriums.Add(a);
            }

            foreach (var c in ws.calendars)
            {
                result.calendars.Add(c);
            }

            foreach (var r in ws.rings)
            {
                result.rings.Add(r);
            }

            foreach (var sg in ws.studentGroups)
            {
                result.studentGroups.Add(sg);
            }

            foreach (var t in ws.teachers)
            {
                result.teachers.Add(t);
            }

            foreach (var co in ws.configOptions)
            {
                result.configOptions.Add(co);
            }

            foreach (var d in ws.disciplines)
            {
                var sg = result.studentGroups.FirstOrDefault(stgr => stgr.StudentGroupId == d.StudentGroupId);
                var newD = new Discipline(d.DisciplineId, d.Name,
                    sg, d.Attestation, d.AuditoriumHours, d.LectureHours, d.PracticalHours);

                result.disciplines.Add(newD);
            }

            foreach (var s in ws.students)
            {
                result.students.Add(new Student(s.StudentId, s.F, s.I, s.O,
                    s.Starosta == 1, s.NFactor == 1, s.Expelled == 1));
            }

            foreach (var sig in ws.studentsInGroups)
            {
                var stud = result.students.FirstOrDefault(s => s.StudentId == sig.StudentId);
                var stgr = result.studentGroups.FirstOrDefault(sg => sg.StudentGroupId == sig.StudentGroupId);
                result.studentsInGroups.Add(new StudentsInGroups
                                                {
                                                    StudentsInGroupsId = sig.StudentsInGroupsId,
                                                    Student = stud, StudentGroup = stgr
                                                });
            }

            foreach (var tfd in ws.teacherForDisciplines)
            {
                var teacher = result.teachers.FirstOrDefault(t => t.TeacherId == tfd.TeacherId);
                var discipline = result.disciplines.FirstOrDefault(d => d.DisciplineId == tfd.DisciplineId);
                result.teacherForDisciplines.Add(new TeacherForDiscipline
                                                     {
                                                         TeacherForDisciplineId = tfd.TeacherForDisciplineId,
                                                         Teacher = teacher, Discipline = discipline
                                                     });
            }

            foreach (var lesson in ws.lessons)
            {
                var tefd = result.teacherForDisciplines.FirstOrDefault(
                        tfd => tfd.TeacherForDisciplineId == lesson.TeacherForDisciplineId);
                var cal = result.calendars.FirstOrDefault(c => c.CalendarId == lesson.CalendarId);
                var ring = result.rings.FirstOrDefault(r => r.RingId == lesson.RingId);
                var aud = result.auditoriums.FirstOrDefault(a => a.AuditoriumId == lesson.AuditoriumId);
                result.lessons.Add(new Lesson(lesson.LessonId, tefd, cal, ring, aud, lesson.IsActive == 1));
            }

            foreach (var logEvent in ws.lessonLogEvents)
            {
                var oldLesson = result.lessons.FirstOrDefault(l => l.LessonId == logEvent.OldLessonId);
                var newLesson = result.lessons.FirstOrDefault(l => l.LessonId == logEvent.NewLessonId);
                result.lessonLogEvents.Add(new LessonLogEvent
                                               {
                                                   LessonLogEventId = logEvent.LessonLogEventId,
                                                   Comment = logEvent.Comment,
                                                   DateTime = logEvent.DateTime,
                                                   NewLesson = newLesson,
                                                   OldLesson = oldLesson

                                               });
            }

            return result;
        }
        static public Schedule FromWebSchedule(WebSchedule ws)
        {
            var result = new Schedule
            {
                auditoriums           = new List <Auditorium>(),
                calendars             = new List <Calendar>(),
                disciplines           = new List <Discipline>(),
                lessons               = new List <Lesson>(),
                rings                 = new List <Ring>(),
                students              = new List <Student>(),
                studentGroups         = new List <StudentGroup>(),
                studentsInGroups      = new List <StudentsInGroups>(),
                teachers              = new List <Teacher>(),
                teacherForDisciplines = new List <TeacherForDiscipline>(),

                configOptions   = new List <ConfigOption>(),
                lessonLogEvents = new List <LessonLogEvent>()
            };

            foreach (var a in ws.auditoriums)
            {
                result.auditoriums.Add(a);
            }

            foreach (var c in ws.calendars)
            {
                result.calendars.Add(c);
            }

            foreach (var r in ws.rings)
            {
                result.rings.Add(r);
            }

            foreach (var sg in ws.studentGroups)
            {
                result.studentGroups.Add(sg);
            }

            foreach (var t in ws.teachers)
            {
                result.teachers.Add(t);
            }

            foreach (var co in ws.configOptions)
            {
                result.configOptions.Add(co);
            }

            foreach (var d in ws.disciplines)
            {
                var sg   = result.studentGroups.FirstOrDefault(stgr => stgr.StudentGroupId == d.StudentGroupId);
                var newD = new Discipline(d.DisciplineId, d.Name,
                                          sg, d.Attestation, d.AuditoriumHours, d.LectureHours, d.PracticalHours);

                result.disciplines.Add(newD);
            }

            foreach (var s in ws.students)
            {
                result.students.Add(new Student(s.StudentId, s.F, s.I, s.O,
                                                s.Starosta == 1, s.NFactor == 1, s.Expelled == 1));
            }

            foreach (var sig in ws.studentsInGroups)
            {
                var stud = result.students.FirstOrDefault(s => s.StudentId == sig.StudentId);
                var stgr = result.studentGroups.FirstOrDefault(sg => sg.StudentGroupId == sig.StudentGroupId);
                result.studentsInGroups.Add(new StudentsInGroups
                {
                    StudentsInGroupsId = sig.StudentsInGroupsId,
                    Student            = stud, StudentGroup = stgr
                });
            }

            foreach (var tfd in ws.teacherForDisciplines)
            {
                var teacher    = result.teachers.FirstOrDefault(t => t.TeacherId == tfd.TeacherId);
                var discipline = result.disciplines.FirstOrDefault(d => d.DisciplineId == tfd.DisciplineId);
                result.teacherForDisciplines.Add(new TeacherForDiscipline
                {
                    TeacherForDisciplineId = tfd.TeacherForDisciplineId,
                    Teacher = teacher, Discipline = discipline
                });
            }

            foreach (var lesson in ws.lessons)
            {
                var tefd = result.teacherForDisciplines.FirstOrDefault(
                    tfd => tfd.TeacherForDisciplineId == lesson.TeacherForDisciplineId);
                var cal  = result.calendars.FirstOrDefault(c => c.CalendarId == lesson.CalendarId);
                var ring = result.rings.FirstOrDefault(r => r.RingId == lesson.RingId);
                var aud  = result.auditoriums.FirstOrDefault(a => a.AuditoriumId == lesson.AuditoriumId);
                result.lessons.Add(new Lesson(lesson.LessonId, tefd, cal, ring, aud, lesson.IsActive == 1));
            }

            foreach (var logEvent in ws.lessonLogEvents)
            {
                var oldLesson = result.lessons.FirstOrDefault(l => l.LessonId == logEvent.OldLessonId);
                var newLesson = result.lessons.FirstOrDefault(l => l.LessonId == logEvent.NewLessonId);
                result.lessonLogEvents.Add(new LessonLogEvent
                {
                    LessonLogEventId = logEvent.LessonLogEventId,
                    Comment          = logEvent.Comment,
                    DateTime         = logEvent.DateTime,
                    NewLesson        = newLesson,
                    OldLesson        = oldLesson
                });
            }

            return(result);
        }