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); }
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); }