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); } }
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; }
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); }
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)); }