/// <summary>Publishes the given version.</summary> /// <param name="version">The version to publish.</param> /// <returns>The published (master) version.</returns> public static ContentItem MakeMasterVersion(this IVersionManager versionManager, ContentItem versionToPublish) { if (!versionToPublish.VersionOf.HasValue) { return(versionToPublish); } var master = versionToPublish.VersionOf; versionManager.ReplaceVersion(master, versionToPublish, storeCurrentVersion: versionToPublish.VersionOf.Value.State == ContentState.Published); return(master); }
/// <summary> /// Used by Versions-Dialog -> previewedItem.VersionOf.HasValue = TRUE ? /// </summary> /// <param name="versionManager"></param> /// <param name="persister"></param> /// <param name="item">The item to be replaced (Master Version)</param> /// <param name="versionIndex">Index of the version to be published</param> public static void PublishVersion(this IVersionManager versionManager, IPersister persister, ContentItem item, int versionIndex) { if (!item.IsPage) { throw new ArgumentException("PublishVersion requires item to be a page"); } if (item.VersionIndex != versionIndex) { // unpublish/restore ContentItem itemToPublish = versionManager.GetVersion(item, versionIndex); bool storeCurrent = item.State == ContentState.Published || itemToPublish.State == ContentState.Unpublished; versionManager.ReplaceVersion(item, itemToPublish, storeCurrent); // returns old version } Publish(versionManager, persister, item); }
protected void gvHistory_RowCommand(object sender, GridViewCommandEventArgs e) { var stateChanger = Engine.Resolve <StateChanger>(); ContentItem currentVersion = Selection.SelectedItem; int versionIndex = Convert.ToInt32(e.CommandArgument); if (e.CommandName == "Publish") { if (currentVersion.VersionIndex == versionIndex) { currentVersion.SavedBy = User.Identity.Name; if (!currentVersion.Published.HasValue || currentVersion.Published.Value > Utility.CurrentTime()) { currentVersion.Published = N2.Utility.CurrentTime(); } stateChanger.ChangeTo(currentVersion, ContentState.Published); persister.Save(currentVersion); Refresh(currentVersion, ToolbarArea.Both); } else { N2.ContentItem versionToRestore = versioner.GetVersion(currentVersion, versionIndex); bool storeCurrent = versionToRestore.State == ContentState.Unpublished; ContentItem unpublishedVersion = versioner.ReplaceVersion(currentVersion, versionToRestore, storeCurrent); currentVersion.SavedBy = User.Identity.Name; if (!currentVersion.Published.HasValue || currentVersion.Published.Value > Utility.CurrentTime()) { currentVersion.Published = N2.Utility.CurrentTime(); } stateChanger.ChangeTo(currentVersion, ContentState.Published); persister.Save(currentVersion); Refresh(currentVersion, ToolbarArea.Both); } } else if (currentVersion.VersionIndex != versionIndex && e.CommandName == "Delete") { ContentItem item = versioner.GetVersion(currentVersion, versionIndex); versioner.DeleteVersion(item); } }
public override void Process(CommandContext state) { versionMaker.ReplaceVersion(state.Content.VersionOf, state.Content, true); }