Exemple #1
0
        public async Task <List <StaffSectionModel> > GetStaffSectionsAsync(int staffUsi)
        {
            var today = _dateProvider.Today();
            var data  = await _teacherRepository.GetStaffSectionsAsync(staffUsi, today);

            // Get the current sections by grouping to remove duplicates that are from a previous term.
            var model = (from d in data
                         group d by d.LocalCourseCode into g
                         select new StaffSectionModel
            {
                SchoolId = g.FirstOrDefault().SchoolId,
                ClassPeriodName = _classPeriodNameProvider.ParseClassPeriodName(g.FirstOrDefault().ClassPeriodName),
                ClassroomIdentificationCode = g.FirstOrDefault().ClassroomIdentificationCode,
                LocalCourseCode = g.FirstOrDefault().LocalCourseCode,
                TermDescriptorId = g.FirstOrDefault(x => x.BeginDate == g.Max(b => b.BeginDate)).TermDescriptorId,
                SchoolYear = g.FirstOrDefault().SchoolYear,
                UniqueSectionCode = g.FirstOrDefault(x => x.BeginDate == g.Max(b => b.BeginDate)).UniqueSectionCode,
                SequenceOfCourse = g.FirstOrDefault(x => x.BeginDate == g.Max(b => b.BeginDate)).SequenceOfCourse,
                BeginDate = g.Max(x => x.BeginDate),
                SessionName = g.FirstOrDefault().SessionName,
                CourseTitle = g.FirstOrDefault().CourseTitle
            }).ToList();

            return(model);
        }
        public async Task <StudentCourseGrades> GetStudentCourseGradesAsync(int studentUsi, bool withStaffPictures = true)
        {
            var gpa = await GetStudentGPAAsync(studentUsi);

            var currentCourses = await GetStudentGradesByGradingPeriod(studentUsi, withStaffPictures);

            var externalLink     = _customParametersProvider.GetParameters().courseGrades.linkToSystemWithDetails;
            var courseGradesLink = new LinkModel {
                Title = externalLink.title, LinkText = externalLink.linkText, Url = externalLink.url
            };

            currentCourses.ForEach(x =>
            {
                x.ClassPeriodName = _classPeriodNameProvider.ParseClassPeriodName(x.ClassPeriodName);
                interpretCourseGrades(x.GradesByGradingPeriod);
                interpretCourseGrades(x.GradesByExam);
                interpretCourseGrades(x.GradesBySemester);
                interpretCourseGrades(x.GradesByFinal);
                x.GradesByGradingPeriod = mapGradingPeriodGrades(x.GradesByGradingPeriod);
                x.GradesByExam          = mapGradingPeriodExam(x.GradesByExam);
                x.GradesBySemester      = mapGradingPeriodExam(x.GradesBySemester);
            });

            var model = new StudentCourseGrades
            {
                GPA = new StudentGPA
                {
                    GPA                = gpa,
                    Interpretation     = gpa.HasValue ? InterpretGPA(gpa.Value) : "",
                    NationalAverageGPA = _customParametersProvider.GetParameters().courseGrades.gpa.nationalAverage
                },
                CurrentCourses      = currentCourses,
                CurrentGradeAverage = GetStudentCurrentGradeAverage(currentCourses),
                Transcript          = await GetStudentTranscriptAsync(studentUsi),
            };

            model.ExternalLink = courseGradesLink;

            return(model);
        }