protected override void Execute() { using (new DataScope(DataScopeIdentifier.Administrated, CultureInfo.CreateSpecificCulture(LocaleName))) { IPage page; using (var transaction = TransactionsFacade.CreateNewScope()) { var pageUnpublishSchedule = PublishScheduleHelper.GetUnpublishSchedule(typeof(IPage), PageId.ToString(), LocaleName); Verify.IsNotNull(pageUnpublishSchedule, "Missing an unpublish page schedule record."); DataFacade.Delete(pageUnpublishSchedule); var deletePublished = false; page = DataFacade.GetData <IPage>(p => p.Id == PageId).FirstOrDefault(); var transitions = ProcessControllerFacade.GetValidTransitions(page).Keys; if (transitions.Contains(GenericPublishProcessController.Draft)) { page.PublicationStatus = GenericPublishProcessController.Draft; DataFacade.Update(page); deletePublished = true; } else { Log.LogWarning(LogTitle, "Scheduled unpublishing of page with title '{0}' could not be done because the page is not in a unpublisheble state", page.Title); } if (deletePublished) { using (new DataScope(DataScopeIdentifier.Public)) { var deletePage = DataFacade.GetData <IPage>(p => p.Id == PageId).FirstOrDefault(); if (deletePage != null) { var metaDataSet = deletePage.GetMetaData(DataScopeIdentifier.Public).Evaluate(); DataFacade.Delete(deletePage, CascadeDeleteType.Disable); DataFacade.Delete(metaDataSet, CascadeDeleteType.Disable); Log.LogVerbose(LogTitle, "Scheduled unpublishing of page with title '{0}' is complete", deletePage.Title); } } } transaction.Complete(); } PublishControlledHelper.ReloadPageElementInConsole(page); } }
protected override void Execute() { using (new DataScope(DataScopeIdentifier.Administrated, CultureInfo.CreateSpecificCulture(LocaleName))) { IPage page; using (var transaction = TransactionsFacade.CreateNewScope()) { var pagePublishSchedule = PublishScheduleHelper.GetPublishSchedule(typeof(IPage), PageId.ToString(), LocaleName); DataFacade.Delete(pagePublishSchedule); page = DataFacade.GetData <IPage>(p => p.Id == PageId).FirstOrDefault(); Verify.IsNotNull(page, "The page with the id {0} does not exist", PageId); var transitions = ProcessControllerFacade.GetValidTransitions(page).Keys; if (transitions.Contains(GenericPublishProcessController.Published)) { page.PublicationStatus = GenericPublishProcessController.Published; DataFacade.Update(page); Log.LogVerbose(LogTitle, "Scheduled publishing of page with title '{0}' is complete", page.Title); } else { Log.LogWarning(LogTitle, "Scheduled publishing of page with title '{0}' could not be done because the page is not in a publisheble state", page.Title); } transaction.Complete(); } PublishControlledHelper.ReloadPageElementInConsole(page); } }