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();
            }
        }
Exemple #3
0
        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();
            }
        }
Exemple #4
0
        /// <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();
            }
        }