Пример #1
0
        public async Task <IList <PracticeGradesDetailedInfo> > GetPracticeGradesDetails(int classId, int studentId, int?standardId)
        {
            var sy = ServiceLocator.SchoolYearService.GetCurrentSchoolYear();
            var studentExplorerTask = ConnectorLocator.StudentConnector.GetStudentExplorerDashboard(sy.Id, studentId, Context.NowSchoolTime);
            var standards           = ServiceLocator.StandardService.GetStandards(classId, null, null);

            if (standardId.HasValue)
            {
                standards = standards.Where(x => x.Id == standardId).ToList();
            }
            var practiceGrades  = GetPracticeGrades(studentId, standardId);
            var standardsScores = (await studentExplorerTask).Standards.ToList();
            var res             = new List <PracticeGradesDetailedInfo>();

            foreach (var standard in standards)
            {
                var standardScore = standardsScores.FirstOrDefault(x => x.StandardId == standard.Id && x.SectionId == classId);
                var pGrades       = practiceGrades.Where(x => x.StandardId == standard.Id).OrderByDescending(x => x.Date).ToList();
                res.Add(PracticeGradesDetailedInfo.Create(pGrades, standard, standardScore));
            }
            res = res.OrderBy(x => x)
                  .ThenBy(x => x.Standard.Name)
                  .ToList();
            return(res);
        }
        public async Task <IList <PracticeGradesDetailedInfo> > GetPracticeGradesDetails(int classId, int studentId, int?standardId)
        {
            await Task.Delay(0);

            var standards = ServiceLocator.StandardService.GetStandards(classId, null, null);

            if (standardId.HasValue)
            {
                standards = standards.Where(x => x.Id == standardId).ToList();
            }
            var practiceGrades  = GetPracticeGrades(studentId, standardId);
            var standardsScores = ((DemoGradingStandardService)ServiceLocator.GradingStandardService).GetStandardScores(classId, null, null);
            var res             = new List <PracticeGradesDetailedInfo>();

            foreach (var standard in standards)
            {
                var standardScore = standardsScores.FirstOrDefault(x => x.StandardId == standard.Id && x.SectionId == classId);
                var pGrades       = practiceGrades.Where(x => x.StandardId == standard.Id).OrderByDescending(x => x.Date).ToList();
                res.Add(PracticeGradesDetailedInfo.Create(pGrades, standard, standardScore));
            }
            return(res);
        }