Esempio n. 1
0
        public static IList <StudentFinalGradeViewData> Create(FinalGradeInfo finalGrade, ChalkableAverage average, IList <ClaimInfo> claims)
        {
            var res       = new List <StudentFinalGradeViewData>();
            var gradeBook = finalGrade.GradeBook;

            foreach (var student in gradeBook.Students)
            {
                var studentFinalGrade = new StudentFinalGradeViewData {
                    Student = StudentViewData.Create(student)
                };
                if (average != null)
                {
                    var stAvg = gradeBook.Averages.FirstOrDefault(x => x.AverageId == average.AverageId && x.StudentId == student.Id);
                    if (stAvg != null)
                    {
                        studentFinalGrade.CurrentStudentAverage = StudentAveragesViewData.Create(stAvg);
                    }
                }
                studentFinalGrade.StudentAverages = StudentAveragesViewData.Create(gradeBook.Averages.Where(x => x.StudentId == student.Id).ToList());
                IList <StudentAnnouncementDetails> stAnns = gradeBook.Announcements
                                                            .Where(a => a.StudentAnnouncements.Any(stAnn => stAnn.StudentId == student.Id))
                                                            .Select(a => a.StudentAnnouncements.First(stAnn => stAnn.StudentId == student.Id)).ToList();
                studentFinalGrade.StatsByType = StudentGradingByTypeStatsViewData.Create(gradeBook.Announcements.Select(x => x.ClassAnnouncementData).ToList(), stAnns, claims);
                var currentStAttendance = finalGrade.Attendances.FirstOrDefault(x => x.StudentId == student.Id);
                studentFinalGrade.Attendance = FinalStudentAttendanceViewData.Create(currentStAttendance, finalGrade.Attendances);
                var disciplines = finalGrade.Disciplines.Where(x => x.StudentId == student.Id).ToList();
                studentFinalGrade.Disciplines = disciplines.Select(x => new DisciplineTypeSummaryViewData
                {
                    Total = x.Occurrences,
                    Type  = DisciplineTypeViewData.Create(x.Infraction)
                }).ToList();
                res.Add(studentFinalGrade);
            }
            return(res);
        }
Esempio n. 2
0
        public ActionResult UpdateStudentAverage(int classId, int gradingPeriodId, int studentId, int averageId, string averageValue, bool exempt
                                                 , IList <StudentAverageCommentViewData> codes, string note)
        {
            IList <ChalkableStudentAverageComment> comments = null;

            if (codes != null)
            {
                comments = codes.Select(x => new ChalkableStudentAverageComment
                {
                    HeaderId       = x.HeaderId,
                    AverageId      = averageId,
                    StudentId      = studentId,
                    HeaderText     = x.HeaderName,
                    GradingComment = x.GradingComment == null ? null
                                        : new GradingComment
                    {
                        Comment = x.GradingComment.Comment,
                        Code    = x.GradingComment.Code,
                        Id      = x.GradingComment.Id
                    }
                }).ToList();
            }
            var res = SchoolLocator.GradingStatisticService.UpdateStudentAverage(classId, studentId, averageId, gradingPeriodId
                                                                                 , averageValue, exempt, comments ?? new List <ChalkableStudentAverageComment>(), note);

            MasterLocator.UserTrackingService.SetFinalGrade(Context.Login, classId, studentId, gradingPeriodId,
                                                            averageValue, exempt, note);

            return(Json(StudentAveragesViewData.Create(res)));
        }