コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
            }
        }