Example #1
0
        public void UpdateTopic(int topicId, DiscussionTopicContract contract)
        {
            PermissionContext.VerifyPermission(PermissionToken.CreateComments);

            repository.HandleTransaction(ctx => {
                var topic = ctx.OfType <DiscussionTopic>().Load(topicId);

                PermissionContext.VerifyAccess(topic, EntryPermissionManager.CanEdit);

                topic.Name    = contract.Name;
                topic.Content = contract.Content;

                ctx.Update(topic);
                ctx.AuditLogger.AuditLog("updated " + topic);
            });
        }
Example #2
0
        public void UpdateTopic(int topicId, DiscussionTopicContract contract)
        {
            PermissionContext.VerifyPermission(PermissionToken.CreateComments);

            _repository.HandleTransaction(ctx =>
            {
                var topic = ctx.OfType <DiscussionTopic>().Load(topicId);

                PermissionContext.VerifyAccess(topic, EntryPermissionManager.CanEdit);

                if (topic.Folder.Id != contract.FolderId && PermissionContext.HasPermission(PermissionToken.DeleteComments))
                {
                    MoveTopic(ctx, topic, contract.FolderId);
                }

                topic.Locked = contract.Locked;
                topic.Name   = contract.Name;
                topic.FirstComment.Message = contract.Content;

                ctx.Update(topic);
                ctx.AuditLogger.AuditLog("updated " + topic);
            });
        }