コード例 #1
0
        public TeacherExtendedDto GetExtendedDataForTeacher(int teacherId)
        {
            TeacherUser teacher = db.TeachersRepository.Get(t => t.Id == teacherId).FirstOrDefault();

            if (teacher == null)
            {
                return(null);
            }

            TeacherExtendedDto teacherData = new TeacherExtendedDto()
            {
                TeacherId  = teacher.Id,
                FirstName  = teacher.FirstName,
                LastName   = teacher.LastName,
                ClassRooms = teacher.Teachings
                             .SelectMany(t => t.Programs).GroupBy(p => p.ClassRoom)
                             .Select(g => new TeacherExtendedDto.ClassRoomCoursesDto()
                {
                    ClassRoomId   = g.Key.Id,
                    ClassRoomName = g.Key.Name,
                    Grade         = g.Key.ClassGrade,
                    Courses       = g.Select(prog => new TeacherExtendedDto.ClassRoomCoursesDto.InnerCourseDto()
                    {
                        CourseId    = prog.Course.Id,
                        CourseName  = prog.Course.Name,
                        WeeklyHours = prog.WeeklyHours
                    }).ToList()
                }).ToList(),
                // No groupings or selectmanys?? and still working...
                Courses = teacher.Teachings
                          .Select(g => new TeacherExtendedDto.CourseClassRoomDto()
                {
                    CourseId   = g.Course.Id,
                    CourseName = g.Course.Name,
                    ClassRooms = g.Programs.Select(p => new TeacherExtendedDto.CourseClassRoomDto.InnerClassRoomDto()
                    {
                        ClassRoomId   = p.ClassRoom.Id,
                        ClassRoomName = p.ClassRoom.Name,
                        Grade         = p.ClassRoom.ClassGrade,
                        WeeklyHours   = p.WeeklyHours
                    }).ToList()
                }).ToList()
            };

            return(teacherData);
        }
コード例 #2
0
        /// <summary>
        /// Convert a teacher model to an extended data structure
        /// With a list of classrooms and courses
        /// and a list of courses and classrooms
        /// </summary>
        /// <param name="teacher"></param>
        /// <returns></returns>
        public static TeacherExtendedDto TeacherToTeacherExtendedDto(TeacherUser teacher)
        {
            TeacherExtendedDto teacherData = new TeacherExtendedDto()
            {
                TeacherId  = teacher.Id,
                FirstName  = teacher.FirstName,
                LastName   = teacher.LastName,
                ClassRooms = teacher.Teachings
                             .SelectMany(t => t.Programs).GroupBy(p => p.ClassRoom)
                             .Select(g => new TeacherExtendedDto.ClassRoomCoursesDto()
                {
                    ClassRoomId   = g.Key.Id,
                    ClassRoomName = g.Key.Name,
                    Grade         = g.Key.ClassGrade,
                    Courses       = g.Select(prog => new TeacherExtendedDto.ClassRoomCoursesDto.InnerCourseDto()
                    {
                        CourseId    = prog.Course.Id,
                        CourseName  = prog.Course.Name,
                        WeeklyHours = prog.WeeklyHours
                    }).ToList()
                }).ToList(),
                // No groupings or selectmanys?? and still working...
                Courses = teacher.Teachings
                          .Select(g => new TeacherExtendedDto.CourseClassRoomDto()
                {
                    CourseId   = g.Course.Id,
                    CourseName = g.Course.Name,
                    ClassRooms = g.Programs.Select(p => new TeacherExtendedDto.CourseClassRoomDto.InnerClassRoomDto()
                    {
                        ClassRoomId   = p.ClassRoom.Id,
                        ClassRoomName = p.ClassRoom.Name,
                        Grade         = p.ClassRoom.ClassGrade,
                        WeeklyHours   = p.WeeklyHours
                    }).ToList()
                }).ToList()
            };

            return(teacherData);
        }