コード例 #1
0
        public static GradingTeacherClassSummaryViewData Create(ShortClassGradesSummary classGradesSummary)
        {
            var res = new GradingTeacherClassSummaryViewData {
                Class = ClassViewData.Create(classGradesSummary.Class)
            };
            var studentsGrades = classGradesSummary.Students.Where(x => x.Avg.HasValue).OrderBy(x => x.Avg)
                                 .ThenBy(x => x.Student.LastName)
                                 .ThenBy(x => x.Student.FirstName).ToList();
            var well    = new List <ShortStudentClassGradesSummary>();
            var trouble = new List <ShortStudentClassGradesSummary>();

            foreach (var studentGrades in studentsGrades)
            {
                if (studentGrades.Avg <= BAD_GRADE)
                {
                    trouble.Add(studentGrades);
                }
                else
                {
                    well.Add(studentGrades);
                }
            }
            int skip = well.Count - DEFAUL_STUDENTS_COUNT > 0 ? well.Count - DEFAUL_STUDENTS_COUNT : 0;

            res.AllStudents = ShortStudentGradingViewData.Create(studentsGrades);
            res.Trouble     = ShortStudentGradingViewData.Create(trouble.Take(DEFAUL_STUDENTS_COUNT).ToList());
            res.Well        = ShortStudentGradingViewData.Create(well.Skip(skip).Take(DEFAUL_STUDENTS_COUNT).ToList());
            return(res);
        }
コード例 #2
0
        public async Task <IList <ShortClassGradesSummary> > GetClassesGradesSummary(int teacherId, GradingPeriod gradingPeriod)
        {
            Trace.Assert(Context.SchoolYearId.HasValue);
            var classesDetails    = ServiceLocator.ClassService.GetTeacherClasses(gradingPeriod.SchoolYearRef, teacherId, gradingPeriod.MarkingPeriodRef);
            var classesIds        = classesDetails.Select(x => x.Id).ToList();
            var stiSectionsGrades = GetSectionGradesSummary(classesIds, gradingPeriod.Id);
            var students          = ServiceLocator.StudentService.GetTeacherStudents(teacherId, Context.SchoolYearId.Value);
            var res = new List <ShortClassGradesSummary>();

            foreach (var sectionGrade in stiSectionsGrades)
            {
                var classesDetail = classesDetails.FirstOrDefault(x => x.Id == sectionGrade.SectionId);
                res.Add(ShortClassGradesSummary.Create(sectionGrade, classesDetail, students));
            }
            return(res);
        }
コード例 #3
0
        public async Task <IList <ShortClassGradesSummary> > GetClassesGradesSummary(int teacherId, GradingPeriod gradingPeriod)
        {
            var classesDetails = ServiceLocator.ClassService.GetTeacherClasses(gradingPeriod.SchoolYearRef, teacherId, gradingPeriod.MarkingPeriodRef);

            if (classesDetails.Count == 0)
            {
                return(new List <ShortClassGradesSummary>());
            }

            var classesIds            = classesDetails.Select(x => x.Id).ToList();
            var stiSectionsGradesTask = ConnectorLocator.GradebookConnector.GetSectionGradesSummary(classesIds, gradingPeriod.Id);
            var students          = ServiceLocator.StudentService.GetTeacherStudents(teacherId, gradingPeriod.SchoolYearRef);
            var res               = new List <ShortClassGradesSummary>();
            var stiSectionsGrades = await stiSectionsGradesTask;

            foreach (var sectionGrades in stiSectionsGrades)
            {
                var classesDetail = classesDetails.FirstOrDefault(x => x.Id == sectionGrades.SectionId);
                res.Add(ShortClassGradesSummary.Create(sectionGrades, classesDetail, students));
            }
            return(res);
        }