예제 #1
0
        public async Task <ChalkableGradeBook> GetGradeBook(int classId, GradingPeriod gradingPeriod, int?standardId = null, int?classAnnouncementType = null, bool needsReCalculate = true)
        {
            Task <Gradebook> stiGradeBook;
            var isTeacherClass = DoRead(u => new ClassTeacherDataAccess(u).Exists(classId, Context.PersonId));

            if (needsReCalculate && GradebookSecurity.CanReCalculateGradebook(Context, isTeacherClass))
            {
                stiGradeBook = ConnectorLocator.GradebookConnector.Calculate(classId, gradingPeriod.Id);
            }
            else
            {
                stiGradeBook = ConnectorLocator.GradebookConnector.GetBySectionAndGradingPeriod(classId, classAnnouncementType, gradingPeriod.Id, standardId);
            }
            Trace.WriteLine("GetGradeBooks" + DateTime.Now.Ticks * 1.0 / TimeSpan.TicksPerSecond);
            return(GetGradeBooks(classId, gradingPeriod, await stiGradeBook));
        }
예제 #2
0
        public async Task <IList <GradingStandardInfo> > GetGradingStandards(int classId, int?gradingPeriodId, bool reCalculateStandards = true)
        {
            var isTeacherClass             = DoRead(u => new ClassTeacherDataAccess(u).Exists(classId, Context.PersonId));
            Task <Gradebook> calculateTask = null;

            if (reCalculateStandards && GradebookSecurity.CanReCalculateGradebook(Context, isTeacherClass))
            {
                calculateTask = ConnectorLocator.GradebookConnector.Calculate(classId, gradingPeriodId);
            }

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

            if (calculateTask != null)
            {
                await calculateTask;
            }
            var standardScores = ConnectorLocator.StandardScoreConnector.GetStandardScores(classId, null, gradingPeriodId);

            standards = standards.Where(s => s.IsActive || standardScores.Any(ss => ss.StandardId == s.Id && ss.HasScore)).ToList();
            var res = GradingStandardInfo.Create(standardScores, standards);

            return(res);
        }