protected virtual void DeleteChildrenCategories(IPage page) { var children = page.GetChildren().Where(p => p.PageTypeId == CategoryPages.CategoryPageTypeId || p.PageTypeId == CategoryPages.CategoryLandingPageTypeId).ToArray(); foreach (var child in children) { DeleteChildrenCategories(child); } //if (!ExistInOtherLocale(GetCultures(), page)) // RemoveAllFolderAndMetaDataDefinitions(page); page.DeletePageStructure(); ProcessControllerFacade.FullDelete(page); }
/// <summary> /// Deletes the versions of the given page in its current localization scope. /// </summary> public static void DeletePage(IPage page) { using (var transactionScope = TransactionsFacade.CreateNewScope()) { using (var conn = new DataConnection()) { conn.DisableServices(); var cultures = DataLocalizationFacade.ActiveLocalizationCultures.ToList(); cultures.Remove(page.DataSourceId.LocaleScope); List <IPage> pagesToDelete = page.GetSubChildren().ToList(); foreach (IPage childPage in pagesToDelete) { if (!ExistInOtherLocale(cultures, childPage)) { RemoveAllFolderAndMetaDataDefinitions(childPage); } childPage.DeletePageStructure(false); ProcessControllerFacade.FullDelete(childPage); } if (!ExistInOtherLocale(cultures, page)) { RemoveAllFolderAndMetaDataDefinitions(page); } page.DeletePageStructure(); Guid pageId = page.Id; var pageVersions = DataFacade.GetData <IPage>(p => p.Id == pageId).ToList(); ProcessControllerFacade.FullDelete(pageVersions); } transactionScope.Complete(); } }
private void codeActivity2_ExecuteCode(object sender, EventArgs e) { bool hasSubPages = this.GetBinding <bool>("HasSubPages"); DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken; IPage selectedPage = (IPage)dataEntityToken.Data; using (TransactionScope transactionScope = TransactionsFacade.CreateNewScope()) { if (DataFacade.WillDeleteSucceed <IPage>(selectedPage) == false) { this.ShowMessage( DialogType.Error, StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "DeletePageWorkflow.CascadeDeleteErrorTitle"), StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "DeletePageWorkflow.CascadeDeleteErrorMessage") ); return; } List <CultureInfo> cultures = DataLocalizationFacade.ActiveLocalizationCultures.ToList(); cultures.Remove(selectedPage.DataSourceId.LocaleScope); if (hasSubPages) { List <IPage> pagesToDelete = selectedPage.GetSubChildren().ToList(); foreach (IPage page in pagesToDelete) { if (DataFacade.WillDeleteSucceed <IPage>(page) == false) { this.ShowMessage( DialogType.Error, StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "DeletePageWorkflow.CascadeDeleteErrorTitle"), StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "DeletePageWorkflow.CascadeDeleteErrorMessage") ); return; } } foreach (IPage page in pagesToDelete) { if (ExistInOtherLocale(cultures, page) == false) { RemoveAllFolderAndMetaDataDefinitions(page); } page.DeletePageStructure(); ProcessControllerFacade.FullDelete(page); } } if (ExistInOtherLocale(cultures, selectedPage) == false) { RemoveAllFolderAndMetaDataDefinitions(selectedPage); } ParentTreeRefresher parentTreeRefresher = this.CreateParentTreeRefresher(); parentTreeRefresher.PostRefreshMesseges(selectedPage.GetDataEntityToken(), 2); selectedPage.DeletePageStructure(); ProcessControllerFacade.FullDelete(selectedPage); transactionScope.Complete(); } }
/// <summary> /// Deletes the versions of the given page in its current localization scope. /// </summary> public static void DeletePage(IPage page) { using (var transactionScope = TransactionsFacade.CreateNewScope()) { List<CultureInfo> cultures = DataLocalizationFacade.ActiveLocalizationCultures.ToList(); cultures.Remove(page.DataSourceId.LocaleScope); List<IPage> pagesToDelete = page.GetSubChildren().ToList(); foreach (IPage childPage in pagesToDelete) { if (!ExistInOtherLocale(cultures, childPage)) { RemoveAllFolderAndMetaDataDefinitions(childPage); } childPage.DeletePageStructure(); ProcessControllerFacade.FullDelete(childPage); } if (!ExistInOtherLocale(cultures, page)) { RemoveAllFolderAndMetaDataDefinitions(page); } page.DeletePageStructure(); Guid pageId = page.Id; var pageVersions = DataFacade.GetData<IPage>(p => p.Id == pageId).ToList(); ProcessControllerFacade.FullDelete(pageVersions); transactionScope.Complete(); } }