示例#1
0
        public NewsPost CloneNewsPostAsDraft(NewsPost newsPost, string userId)
        {
            var oldVersionInfo = _contentManager.GetVersionInfo(CONTENT_TYPE_NEWSPOST, newsPost.Id, newsPost.VersionCode).Result;

            if (oldVersionInfo == null)
            {
                throw new Exception($"Cannot clone NewsPost. NewsPost {newsPost.Id}, version {newsPost.VersionCode} does not exist.");
            }

            var versionInfo       = _contentManager.CreateDraftVersion(CONTENT_TYPE_NEWSPOST, newsPost.Id, userId).Result;
            var clonedContentTree = _contentManager.CloneContentTree(newsPost.ContentTreeId, versionInfo.VersionCode).Result;
            var clonedNewsPost    = newsPost.Clone();

            clonedNewsPost.Status        = versionInfo.Status;
            clonedNewsPost.VersionCode   = versionInfo.VersionCode;
            clonedNewsPost.ContentTreeId = clonedContentTree.Id;

            var versionData = ExtractVersionData(clonedNewsPost);

            _contentManager.SetVersionModelData(versionInfo, versionData).Wait();

            return(clonedNewsPost);
        }
示例#2
0
        public AnnouncementPost CloneAnnouncementPostAsDraft(AnnouncementPost announcementPost, string userId)
        {
            var oldVersionInfo = _contentManager.GetVersionInfo(CONTENT_TYPE_ANNOUNCEMENTPOST, announcementPost.Id, announcementPost.VersionCode).Result;

            if (oldVersionInfo == null)
            {
                throw new Exception($"Cannot clone AnnouncementPost. AnnouncementPost {announcementPost.Id}, version {announcementPost.VersionCode} does not exist.");
            }

            var versionInfo            = _contentManager.CreateDraftVersion(CONTENT_TYPE_ANNOUNCEMENTPOST, announcementPost.Id, userId).Result;
            var clonedContentTree      = _contentManager.CloneContentTree(announcementPost.ContentTreeId, versionInfo.VersionCode).Result;
            var clonedAnnouncementPost = announcementPost.Clone();

            clonedAnnouncementPost.Status        = versionInfo.Status;
            clonedAnnouncementPost.VersionCode   = versionInfo.VersionCode;
            clonedAnnouncementPost.ContentTreeId = clonedContentTree.Id;

            var versionData = ExtractVersionData(clonedAnnouncementPost);

            _contentManager.SetVersionModelData(versionInfo, versionData).Wait();

            return(clonedAnnouncementPost);
        }