示例#1
0
        private ChalkableGradeBook BuildGradeBook(Gradebook stiGradeBook, GradingPeriod gradingPeriod,
                                                  IList <AnnouncementComplex> anns, IList <Student> students)
        {
            var gradeBook = new ChalkableGradeBook
            {
                GradingPeriod = gradingPeriod,
                Options       = ChalkableClassOptions.Create(stiGradeBook.Options),
                Averages      = stiGradeBook.StudentAverages.Select(ChalkableStudentAverage.Create).ToList(),
                Students      = students,
                Announcements = PrepareAnnouncementDetailsForGradeBook(stiGradeBook, gradingPeriod, anns, students)
            };

            if (!stiGradeBook.Options.IncludeWithdrawnStudents)
            {
                gradeBook.Students = new List <Student>();
                foreach (var student in students)
                {
                    var score = stiGradeBook.Scores.FirstOrDefault(x => x.StudentId == student.Id);
                    if (score != null && !score.Withdrawn)
                    {
                        gradeBook.Students.Add(student);
                    }
                }
            }
            return(gradeBook);
        }
示例#2
0
 public static GradingGridsViewData Create(ChalkableGradeBook grid, IList <GradingPeriod> gradingPeriods
                                           , IList <Standard> standards, IList <ClassAnnouncementType> classAnnouncementTypes, IList <ClaimInfo> claims)
 {
     return(new GradingGridsViewData
     {
         CurrentGradingGrid = grid != null?GradingGridViewData.Create(grid, claims) : null,
                                  GradingPeriods = gradingPeriods.Select(GradingPeriodViewData.Create).ToList(),
                                  Standards = StandardViewData.Create(standards),
                                  ClassAnnouncementTypes = ClassAnnouncementTypeViewData.Create(classAnnouncementTypes)
     });
 }
示例#3
0
        public static GradingGridViewData Create(ChalkableGradeBook gradeBook, IList <ClaimInfo> claims)
        {
            var res = new GradingGridViewData(gradeBook)
            {
                Students = new List <GradeStudentViewData>()
            };

            if (gradeBook.Options != null)
            {
                res.DisplayAlphaGrades       = gradeBook.Options.DisplayAlphaGrades;
                res.DisplayStudentAverage    = gradeBook.Options.DisplayStudentAverage;
                res.DisplayTotalPoints       = gradeBook.Options.DisplayTotalPoints;
                res.IncludeWithdrawnStudents = gradeBook.Options.IncludeWithdrawnStudents;
                res.RoundDisplayedAverages   = gradeBook.Options.RoundDisplayedAverages;
            }
            foreach (var student in gradeBook.Students)
            {
                res.Students.Add(GradeStudentViewData.Create(student, student.IsWithdrawn));
            }
            var stIds = res.Students.Select(x => x.StudentInfo.Id).ToList();

            res.TotalAverages = StudentTotalAveragesViewData.Create(gradeBook.Averages, stIds);

            var gpAvg = res.TotalAverages.FirstOrDefault(x => x.IsGradingPeriodAverage);

            if (gpAvg != null)
            {
                res.Avg = gpAvg.TotalAverage;
            }

            if (res.DisplayTotalPoints || res.DisplayAlphaGrades)
            {
                BuildTotalPoints(res, stIds, gradeBook.StudentTotalPoints);
            }

            res.GradingItems = gradeBook.Announcements
                               .OrderByDescending(x => x.ClassAnnouncementData.Expires)
                               .Select(x => ShortAnnouncementGradeViewData.Create(x.ClassAnnouncementData, x.StudentAnnouncements, stIds, claims))
                               .ToList();

            return(res);
        }
示例#4
0
        private ChalkableGradeBook BuildGradeBook(Gradebook stiGradeBook, GradingPeriod gradingPeriod, IList <AnnouncementComplex> anns, IList <Student> students)
        {
            var gradeBook = new ChalkableGradeBook
            {
                GradingPeriod = gradingPeriod,
                Averages      = stiGradeBook.StudentAverages.Select(ChalkableStudentAverage.Create).ToList(),
                Students      = students,
                Options       = stiGradeBook.Options != null?ChalkableClassOptions.Create(stiGradeBook.Options) : null
            };
            var includeWithdrawnStudents = gradeBook.Options != null && gradeBook.Options.IncludeWithdrawnStudents;

            //Preapred List Of Announcement Info
            Trace.WriteLine("PrepareAnnounceemntDetailsForGradeBook " + DateTime.Now.Ticks * 1.0 / TimeSpan.TicksPerSecond);
            gradeBook.Announcements = PrepareAnnounceemntDetailsForGradeBook(stiGradeBook, gradingPeriod, anns, students, includeWithdrawnStudents);

            //prepare students score
            var stiScores = stiGradeBook.Scores;

            if (!includeWithdrawnStudents)
            {
                stiScores = stiScores.Where(x => !x.Withdrawn).ToList();
            }

            if (stiScores.Any())
            {
                gradeBook.Students = gradeBook.Students.Where(s => stiScores.Any(score => score.StudentId == s.Id)).ToList();
            }

            gradeBook.Students = gradeBook.Students
                                 .OrderBy(x => x.LastName, StringComparer.OrdinalIgnoreCase)
                                 .ThenBy(x => x.FirstName, StringComparer.OrdinalIgnoreCase).ToList();

            if (stiGradeBook.StudentTotalPoints != null)
            {
                var totalPoints = stiGradeBook.StudentTotalPoints.Where(x => x.GradingPeriodId == gradingPeriod.Id).ToList();
                gradeBook.StudentTotalPoints = StudentTotalPoint.Create(totalPoints);
            }
            return(gradeBook);
        }
示例#5
0
        private AverageDashboard GetAveragesDashboard(ChalkableGradeBook chlkGradeBook, int classId)
        {
            var startDate  = new DateTime(DateTime.Today.Year, 1, 1);
            var endDate    = DateTime.Today;
            var attendance = ((DemoAttendanceService)ServiceLocator.AttendanceService).GetSectionAttendanceSummary(
                new List <int> {
                classId
            }, startDate, endDate).First();

            var attendances = chlkGradeBook.Students.Select(x => new StudentTotalSectionAttendance()
            {
                Absences    = attendance.Students.Where(y => y.StudentId == x.Id).Select(y => y.Absences ?? 0).FirstOrDefault(),
                Tardies     = attendance.Students.Where(y => y.StudentId == x.Id).Select(y => y.Tardies ?? 0).FirstOrDefault(),
                StudentId   = x.Id,
                SectionId   = classId,
                DaysPresent = attendance.Students.Count(y => y.StudentId == x.Id && y.Absences == 0)
            }).ToList();

            return(new AverageDashboard
            {
                AttendanceSummary = attendances,
                DisciplineSummary = GetStudentDisciplineSummaries(chlkGradeBook.Students, classId, startDate, endDate)
            });
        }
示例#6
0
 protected GradingGridViewData(ChalkableGradeBook gradeBook)
     : base(gradeBook.GradingPeriod, null)
 {
 }