コード例 #1
0
        public StudentAverage UpdateStudentAverage(StudentAverage studentAverage)
        {
            var gb = GetBySectionAndGradingPeriod(studentAverage.SectionId, null, studentAverage.GradingPeriodId);

            var avgs = gb.StudentAverages.ToList();

            var id = -1;

            for (var i = 0; i < avgs.Count; ++i)
            {
                var avg = avgs[i];
                if (avg.SectionId != studentAverage.SectionId || avg.StudentId != studentAverage.StudentId ||
                    avg.GradingPeriodId != studentAverage.GradingPeriodId)
                {
                    continue;
                }
                id = i;
            }

            if (id == -1)
            {
                avgs.Add(studentAverage);
            }
            else
            {
                avgs[id] = studentAverage;
            }
            gb.StudentAverages = avgs;

            return(studentAverage);
        }
コード例 #2
0
 public override bool Equals(object obj)
 {
     if (obj is StudentAverage)
     {
         StudentAverage s = (StudentAverage)obj;
         return(Name == s.Name && Score == s.Score);
     }
     else
     {
         return(false);
     }
 }
コード例 #3
0
        public static ChalkableStudentAverage Create(StudentAverage studentAverage)
        {
            var res = new ChalkableStudentAverage
            {
                AverageId              = studentAverage.AverageId,
                AverageName            = studentAverage.AverageName,
                CalculatedAvg          = studentAverage.CalculatedNumericAverage,
                EnteredAvg             = studentAverage.EnteredNumericAverage,
                StudentId              = studentAverage.StudentId,
                IsGradingPeriodAverage = studentAverage.IsGradingPeriodAverage,
                Exempt          = studentAverage.Exempt,
                MayBeExempt     = studentAverage.MayBeExempt,
                Note            = studentAverage.ReportCardNote,
                ClassId         = studentAverage.SectionId,
                GradingPeriodId = studentAverage.GradingPeriodId
            };

            if (studentAverage.CalculatedAlphaGradeId.HasValue)
            {
                res.CalculatedAlphaGrade = new AlphaGrade
                {
                    Id   = studentAverage.CalculatedAlphaGradeId.Value,
                    Name = studentAverage.CalculatedAlphaGradeName
                }
            }
            ;
            if (studentAverage.EnteredAlphaGradeId.HasValue)
            {
                res.EnteredAlphaGrade = new AlphaGrade
                {
                    Id   = studentAverage.EnteredAlphaGradeId.Value,
                    Name = studentAverage.EnteredAlphaGradeName
                }
            }
            ;
            if (studentAverage.Comments != null)
            {
                res.Comments = studentAverage.Comments.Select(ChalkableStudentAverageComment.Create).ToList();
            }
            return(res);
        }
    }
コード例 #4
0
        public ChalkableStudentAverage UpdateStudentAverage(int classId, int studentId, int averageId, int?gradingPeriodId, string averageValue, bool exempt, IList <ChalkableStudentAverageComment> comments, string note)
        {
            var studentAverage = new StudentAverage
            {
                AverageId           = averageId,
                StudentId           = studentId,
                GradingPeriodId     = gradingPeriodId,
                EnteredAverageValue = averageValue,
                Exempt = exempt
            };

            if (comments != null)
            {
                studentAverage.Comments = new List <StudentAverageComment>();
                foreach (var comment in comments)
                {
                    var stAvgComment = new StudentAverageComment
                    {
                        AverageId      = averageId,
                        StudentId      = studentId,
                        HeaderId       = comment.HeaderId,
                        HeaderText     = comment.HeaderText,
                        HeaderSequence = comment.HeaderSequence,
                    };
                    if (comment.GradingComment != null)
                    {
                        stAvgComment.CommentId   = comment.GradingComment.Id;
                        stAvgComment.CommentCode = comment.GradingComment.Code;
                        stAvgComment.CommentText = comment.GradingComment.Comment;
                    }
                    studentAverage.Comments.Add(stAvgComment);
                }
            }
            if (note != null)
            {
                studentAverage.ReportCardNote = note;
            }
            studentAverage = ConnectorLocator.GradebookConnector.UpdateStudentAverage(classId, studentAverage);
            return(ChalkableStudentAverage.Create(studentAverage));
        }
コード例 #5
0
        public ChalkableStudentAverage UpdateStudentAverage(int classId, int studentId, int averageId, int?gradingPeriodId, string averageValue, bool exempt, IList <ChalkableStudentAverageComment> comments, string note)
        {
            var studentAverage = new StudentAverage
            {
                AverageId              = averageId,
                StudentId              = studentId,
                GradingPeriodId        = gradingPeriodId,
                EnteredAverageValue    = averageValue,
                SectionId              = classId,
                IsGradingPeriodAverage = true
            };

            decimal numericScore = -1;
            var     isAlphaGrade = !decimal.TryParse(averageValue, out numericScore);

            if (isAlphaGrade)
            {
                var alphaGrade = ServiceLocator.AlphaGradeService.GetAlphaGrades().FirstOrDefault(x => x.Name.ToLowerInvariant() == averageValue);
                if (alphaGrade != null)
                {
                    var gradingScaleRange = ((DemoGradingScaleService)ServiceLocator.GradingScaleService).GetByAlphaGradeId(alphaGrade.Id);

                    if (gradingScaleRange != null)
                    {
                        numericScore = gradingScaleRange.AveragingEquivalent;
                    }

                    studentAverage.EnteredAlphaGradeId      = alphaGrade.Id;
                    studentAverage.EnteredAlphaGradeName    = alphaGrade.Name;
                    studentAverage.CalculatedAlphaGradeId   = alphaGrade.Id;
                    studentAverage.CalculatedAlphaGradeName = alphaGrade.Name;
                }
            }

            studentAverage.EnteredNumericAverage    = numericScore;
            studentAverage.CalculatedNumericAverage = numericScore;

            if (comments != null)
            {
                studentAverage.Comments = new List <StudentAverageComment>();
                foreach (var comment in comments)
                {
                    var stAvgComment = new StudentAverageComment
                    {
                        AverageId      = averageId,
                        StudentId      = studentId,
                        HeaderId       = comment.HeaderId,
                        HeaderText     = comment.HeaderText,
                        HeaderSequence = comment.HeaderSequence,
                    };
                    if (comment.GradingComment != null)
                    {
                        stAvgComment.CommentId   = comment.GradingComment.Id;
                        stAvgComment.CommentCode = comment.GradingComment.Code;
                        stAvgComment.CommentText = comment.GradingComment.Comment;
                    }
                    studentAverage.Comments.Add(stAvgComment);
                }
            }
            if (note != null)
            {
                studentAverage.ReportCardNote = note;
            }
            studentAverage = UpdateStudentAverage(studentAverage);
            return(ChalkableStudentAverage.Create(studentAverage));
        }
コード例 #6
0
        public StudentAverage UpdateStudentAverage(int sectionId, StudentAverage studentAverage)
        {
            var url = $"{BaseUrl}chalkable/sections/{sectionId}/averages/{studentAverage.AverageId}/students/{studentAverage.StudentId}";

            return(Put(url, studentAverage));
        }