public override IList <AnnouncementComplex> GetAnnouncementsByIds(IList <int> announcementIds) { using (var u = Read()) { var announcement = InternalGetDetailses(CreateSupplementalAnnouncementDataAccess(u), announcementIds) .Cast <AnnouncementComplex>().ToList(); var recipients = new SupplementalAnnouncementRecipientDataAccess(u).GetRecipientsByAnnouncementIds(announcementIds); foreach (var announcementComplex in announcement) { announcementComplex.SupplementalAnnouncementData.Recipients = recipients .Where(x => x.SupplementalAnnouncementRef == announcementComplex.Id) .Select(x => x.Recipient).ToList(); } return(announcement); } }
public override void Submit(int announcementId) { Trace.Assert(Context.PersonId.HasValue); using (var u = Update()) { var da = CreateSupplementalAnnouncementDataAccess(u); var res = InternalGetDetails(da, announcementId); var suppAnnouncement = res.SupplementalAnnouncementData; var recipients = new SupplementalAnnouncementRecipientDataAccess(u).GetRecipientsByAnnouncementId(suppAnnouncement.Id); AnnouncementSecurity.EnsureInModifyAccess(res, Context); ValidateSupplementalAnnouncement(suppAnnouncement, da, ServiceLocator, recipients.Select(x => x.StudentRef).ToList(), suppAnnouncement.ClassRef); if (suppAnnouncement.IsDraft) { suppAnnouncement.State = AnnouncementState.Created; suppAnnouncement.Created = Context.NowSchoolTime.Date; da.Update(suppAnnouncement); } ServiceLocator.AnnouncementAssignedAttributeService.ValidateAttributes(res.AnnouncementAttributes); u.Commit(); } }