コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
                }
            }
        }