private void PublishPendingVersions() { var scheduledForAutoPublish = versionRepository.GetVersionsScheduledForPublish(Utility.CurrentTime()).ToList(); foreach (var version in scheduledForAutoPublish) { try { var scheduledVersion = versionRepository.DeserializeVersion(version); scheduledVersion["FuturePublishDate"] = null; if (scheduledVersion.VersionOf.HasValue && scheduledVersion.VersionOf.Value != null) { versioner.Publish(persister, scheduledVersion); } else { //Delete versions if master item doesn't exists versioner.DeleteVersion(scheduledVersion); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } logger.Error(ex); } } }
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); } }
protected void gvHistory_RowCommand(object sender, GridViewCommandEventArgs e) { ContentItem currentVersion = Selection.SelectedItem; int versionIndex = Convert.ToInt32(e.CommandArgument); if (e.CommandName == "Publish") { versioner.PublishVersion(persister, currentVersion, versionIndex); Refresh(currentVersion, ToolbarArea.Both); } else if (e.CommandName == "Delete") // why not delete draft && currentVersion.VersionIndex != versionIndex) { // delete a version, not the item! ContentItem item = versioner.GetVersion(currentVersion, versionIndex); if (CanDeleteVersion(item)) { versioner.DeleteVersion(item); Refresh(currentVersion, ToolbarArea.Both); } } }