Beispiel #1
0
        public void AddStudentAnnouncement(StudentAnnouncement studentAnnouncement)
        {
            StudentAnnouncementStorage.Add(studentAnnouncement);
            var score = new Score();

            MapperFactory.GetMapper <Score, StudentAnnouncement>().Map(score, studentAnnouncement);
            ActivityScoreStorage.Add(score);
        }
        public static StudentSummaryGradeViewData Create(StudentAnnouncement studentAnnouncement)
        {
            var res = new StudentSummaryGradeViewData
            {
                Grade             = studentAnnouncement.ScoreValue,
                AnnouncementTitle = studentAnnouncement.AnnouncementTitle,
                AnnouncementId    = studentAnnouncement.AnnouncementId
            };

            return(res);
        }
        public static StudentSummaryInfo Create(Student student, NowDashboard nowDashboard
                                                , IList <Data.School.Model.Infraction> infractions, IList <AnnouncementComplex> anns, IMapper <StudentAnnouncement, Score> mapper)
        {
            var res = new StudentSummaryInfo
            {
                StudentInfo = student,
                ClassRank   = nowDashboard.ClassRank != null?ClassRankInfo.Create(nowDashboard.ClassRank) : null,
                                  CurrentSectionId           = nowDashboard.CurrentSectionId,
                                  TotalDisciplineOccurrences = nowDashboard.Infractions.Any() ? nowDashboard.Infractions.Sum(x => x.Occurrences) : 0,
                                  InfractionSummaries        = InfractionSummaryInfo.Create(nowDashboard.Infractions.ToList(), infractions),
                                  StudentAnnouncements       = new List <StudentAnnouncement>(),
                                  Attendances            = ShortStudentClassAttendanceSummary.Create(nowDashboard.SectionAttendance.ToList()),
                                  CurrentAttendanceLevel = nowDashboard.CurrentAttendanceStatus
            };

            if (nowDashboard.DailyAttendance == null)
            {
                nowDashboard.DailyAttendance = new StudentDailyAbsenceSummary {
                    Absences = 0, Tardies = 0, Presents = 0
                }
            }
            ;
            res.DailyAttendance = DailyAbsenceSummaryInfo.Create(nowDashboard.DailyAttendance);

            var scores = nowDashboard.Scores.Where(x => !string.IsNullOrEmpty(x.ScoreValue)).ToList();

            foreach (var score in scores)
            {
                var ann = anns.FirstOrDefault(x => x.ClassAnnouncementData.SisActivityId == score.ActivityId);
                if (ann == null)
                {
                    continue;
                }
                var studentAnn = new StudentAnnouncement {
                    AnnouncementId = ann.Id
                };
                mapper.Map(studentAnn, score);
                res.StudentAnnouncements.Add(studentAnn);
            }
            return(res);
        }
    }
Beispiel #4
0
        public static IList <AnnouncementViewData> PrepareAnnouncementsComplexViewData(IServiceLocatorSchool schoolL, IList <AnnouncementComplex> announcements)
        {
            if (DemoUserService.IsDemoUser(schoolL.Context))
            {
                announcements = announcements.Where(x => x.State == AnnouncementState.Created).Take(10).ToList();
            }
            var annsIdsWithApp = announcements.Where(x => x.ApplicationCount == 1).Select(x => x.Id).ToList();
            var annApps        = schoolL.ApplicationSchoolService.GetAnnouncementApplicationsByAnnIds(annsIdsWithApp, true);
            var apps           = schoolL.ServiceLocatorMaster.ApplicationService.GetApplicationsByIds(annApps.Select(x => x.ApplicationRef).ToList());

            annApps = annApps.Where(x => apps.Any(a => a.Id == x.ApplicationRef)).ToList();

            var stAnns = announcements.Where(x => x.CurrentStudentScore != null).Select(x =>
            {
                StudentAnnouncement res = x.CurrentStudentScore;
                return(res);
            }).ToList();

            return(AnnouncementViewData.Create(announcements, annApps, apps, schoolL.Context.Claims, stAnns));
        }
 protected ShortStudentAnnouncementViewData(StudentAnnouncement studentAnnouncement)
 {
     IsAbsent            = studentAnnouncement.Absent;
     IsUnexcusedAbsent   = studentAnnouncement.IsUnexcusedAbsent;
     IsExempt            = studentAnnouncement.Exempt;
     IsIncomplete        = studentAnnouncement.Incomplete;
     IsLate              = studentAnnouncement.Late;
     AnnouncementId      = studentAnnouncement.AnnouncementId;
     Comment             = studentAnnouncement.Comment;
     AverageDropped      = studentAnnouncement.AverageDropped;
     CategoryDropped     = studentAnnouncement.CategoryDropped;
     AnnouncementDropped = studentAnnouncement.AnnouncementDropped;
     Dropped             = studentAnnouncement.ScoreDropped;
     AutomaticalyDropped = studentAnnouncement.AutomaticalyDropped;
     GradeValue          = studentAnnouncement.ScoreValue;
     ExtraCredits        = studentAnnouncement.ExtraCredit;
     NumericGradeValue   = studentAnnouncement.NumericScore;
     GradeValue          = studentAnnouncement.ScoreValue;
     State            = (int)studentAnnouncement.State;
     StudentId        = studentAnnouncement.StudentId;
     IncludeInAverage = studentAnnouncement.IncludeInAverage;
 }
Beispiel #6
0
        public StudentAnnouncement SetGrade(int announcementId, int studentId, string value, string extraCredits, string comment, bool dropped,
                                            bool late, bool exempt, bool incomplete, GradingStyleEnum?gradingStyle = null)
        {
            var ann = ServiceLocator.ClassAnnouncementService.GetClassAnnouncemenById(announcementId);

            if (!ann.IsSubmitted)
            {
                throw new ChalkableException("Announcement is not submitted yet");
            }

            if (!string.IsNullOrEmpty(value) && value.Trim() != "")
            {
                exempt = false;
            }

            else
            {
                value = null;
            }

            //need this info, before we post data to iNow, for notification
            Trace.Assert(ann.SisActivityId.HasValue);
            var studentScoreBefore = Task.Run(() => ConnectorLocator.ActivityScoreConnector.GetScore(ann.SisActivityId.Value, studentId)).Result;

            var stAnn = new StudentAnnouncement
            {
                ExtraCredit    = extraCredits,
                Comment        = comment,
                ScoreDropped   = dropped,
                Incomplete     = incomplete,
                Late           = late,
                Exempt         = exempt,
                ActivityId     = ann.SisActivityId.Value,
                AnnouncementId = announcementId,
                StudentId      = studentId,
                ScoreValue     = value,
            };
            var score = new Score();

            MapperFactory.GetMapper <Score, StudentAnnouncement>().Map(score, stAnn);
            score.ActivityDate = ann.Expires;
            score.ActivityName = ann.Title;
            score = ConnectorLocator.ActivityScoreConnector.UpdateScore(score.ActivityId, score.StudentId, score);
            MapperFactory.GetMapper <StudentAnnouncement, Score>().Map(stAnn, score);

            if (stAnn.AlternateScoreId.HasValue)
            {
                stAnn.AlternateScore = ServiceLocator.AlternateScoreService.GetAlternateScore(stAnn.AlternateScoreId.Value);
            }

            //
            var commentWasChanged = (!string.IsNullOrWhiteSpace(comment) && studentScoreBefore.Comment != comment);
            var scoreWasChanged   = (!string.IsNullOrWhiteSpace(value) && studentScoreBefore.ScoreValue != value);

            if (ann.VisibleForStudent && (commentWasChanged || scoreWasChanged))
            {
                ServiceLocator.NotificationService.AddAnnouncementSetGradeNotificationToStudent(announcementId, stAnn.StudentId);
            }

            return(stAnn);
        }
Beispiel #7
0
        public StudentAnnouncement SetGrade(int announcementId, int studentId, string value, string extraCredits,
                                            string comment, bool dropped, bool late, bool exempt, bool incomplete, GradingStyleEnum?gradingStyle = null)
        {
            var ann = ServiceLocator.ClassAnnouncementService.GetClassAnnouncemenById(announcementId);

            Trace.Assert(ann.SisActivityId.HasValue);

            if (!string.IsNullOrEmpty(value) && value.Trim() != "")
            {
                exempt = false;
            }
            else
            {
                value = null;
            }

            decimal numericScore;
            var     isDecimal = decimal.TryParse(value, out numericScore);

            if (value != null && !isDecimal)
            {
                var numScore = ServiceLocator.AlphaGradeService.GetAlphaGrades()
                               .FirstOrDefault(x => String.Equals(x.Name, value, StringComparison.InvariantCultureIgnoreCase));
                if (numScore != null)
                {
                    var gradingScaleRange =
                        ((DemoGradingScaleService)ServiceLocator.GradingScaleService).GetByAlphaGradeId(numScore.Id);
                    if (gradingScaleRange != null)
                    {
                        numericScore = gradingScaleRange.AveragingEquivalent;
                        value        = numScore.Name;
                    }
                }
            }

            var gradeComment        = comment != null && !string.IsNullOrWhiteSpace(comment) ? comment.Trim() : "";
            var oldScore            = ActivityScoreStorage.GetScore(ann.SisActivityId.Value, studentId);
            var studentAnnouncement = new StudentAnnouncement();

            MapperFactory.GetMapper <StudentAnnouncement, Score>().Map(studentAnnouncement, oldScore);
            studentAnnouncement.AnnouncementId = oldScore.ActivityId;

            if (numericScore >= 0 && value != null)
            {
                studentAnnouncement.NumericScore = numericScore;
                studentAnnouncement.ScoreValue   = isDecimal
                    ? string.Format("{0:0.00}", numericScore)
                    : value.ToString(CultureInfo.InvariantCulture);
            }
            else if (value == null)
            {
                studentAnnouncement.NumericScore = null;
                studentAnnouncement.ScoreValue   = "";
            }

            if (value == null && oldScore.ScoreValue != null)
            {
                studentAnnouncement.NumericScore = null;
                studentAnnouncement.ScoreValue   = "";
            }
            studentAnnouncement.Exempt      = exempt;
            studentAnnouncement.Late        = late;
            studentAnnouncement.Incomplete  = incomplete;
            studentAnnouncement.ExtraCredit = extraCredits;

            if (studentAnnouncement.NumericScore.HasValue || studentAnnouncement.Late ||
                studentAnnouncement.Incomplete)
            {
                studentAnnouncement.ScoreDropped = dropped;
                studentAnnouncement.Comment      = gradeComment;
            }
            else
            {
                studentAnnouncement.ScoreDropped = false;
            }
            var score = new Score();

            MapperFactory.GetMapper <Score, StudentAnnouncement>().Map(score, studentAnnouncement);
            score = ActivityScoreStorage.UpdateScore(score.ActivityId, score.StudentId, score);
            score.ActivityDate = ann.Expires;
            score.ActivityName = ann.Title;
            MapperFactory.GetMapper <StudentAnnouncement, Score>().Map(studentAnnouncement, score);

            if (studentAnnouncement.AlternateScoreId.HasValue)
            {
                studentAnnouncement.AlternateScore = ServiceLocator.AlternateScoreService.GetAlternateScore(studentAnnouncement.AlternateScoreId.Value);
            }
            if (ann.VisibleForStudent)
            {
                ServiceLocator.NotificationService.AddAnnouncementSetGradeNotificationToStudent(announcementId, studentAnnouncement.StudentId);
            }
            return(studentAnnouncement);
        }
 protected StudentAnnouncementViewData(StudentAnnouncement studentAnnouncement)
     : base(studentAnnouncement)
 {
 }
 public static ShortStudentAnnouncementViewData Create(StudentAnnouncement studentAnnouncement)
 {
     return(new ShortStudentAnnouncementViewData(studentAnnouncement));
 }