public AnnouncementComment Reply(int toCommentId, string text, IList <int> attachmentIds) { Trace.Assert(Context.PersonId.HasValue); using (var uow = Update()) { var da = new AnnouncementCommentDataAccess(uow); var parentComment = da.GetById(toCommentId); var type = ServiceLocator.AnnouncementFetchService.GetAnnouncementType(parentComment.AnnouncementRef); var ann = ServiceLocator.GetAnnouncementService(type).GetAnnouncementById(parentComment.AnnouncementRef); EnsureInCreateAccess(ann); var id = da.InsertWithEntityId(new AnnouncementComment { AnnouncementRef = parentComment.AnnouncementRef, PersonRef = Context.PersonId.Value, Text = text, PostedDate = Context.NowSchoolTime, ParentCommentRef = toCommentId, Hidden = ann.PreviewCommentsEnabled }); new AnnouncementCommentAttachmentDataAccess(uow).PostAttachements(id, attachmentIds); uow.Commit(); return(da.GetDetailsById(id, Context.PersonId.Value, Context.RoleId)); } }
public AnnouncementComment Edit(int announcementCommentId, string text, IList <int> attachmentIds) { Trace.Assert(Context.PersonId.HasValue); using (var uow = Update()) { var da = new AnnouncementCommentDataAccess(uow); var comment = da.GetDetailsById(announcementCommentId, Context.PersonId.Value, Context.RoleId); EnsureInCreateAccess(comment.AnnouncementRef); if (comment.PersonRef != Context.PersonId) { throw new ChalkableSecurityException("Only owner can edit comment"); } comment.Text = text; comment.PostedDate = Context.NowSchoolTime; da.Update(comment); new AnnouncementCommentAttachmentDataAccess(uow).PostAttachements(announcementCommentId, attachmentIds); uow.Commit(); return(da.GetDetailsById(announcementCommentId, Context.PersonId.Value, Context.RoleId)); } }