private void stepFinalize_codeActivity_ExecuteCode(object sender, EventArgs e) { AddNewTreeRefresher addNewTreeRefresher = this.CreateAddNewTreeRefresher(this.EntityToken); Guid parentId = GetParentId(); IPage newPage = this.GetBinding <IPage>("NewPage"); newPage.SourceCultureName = UserSettings.ActiveLocaleCultureInfo.Name; IPageType selectedPageType = DataFacade.GetData <IPageType>().Single(f => f.Id == newPage.PageTypeId); IQueryable <IPageTypePageTemplateRestriction> templateRestrictions = DataFacade.GetData <IPageTypePageTemplateRestriction>(). Where(f => f.PageTypeId == newPage.PageTypeId); if (selectedPageType.DefaultTemplateId != Guid.Empty) { newPage.TemplateId = selectedPageType.DefaultTemplateId; } else if (templateRestrictions.Any()) { newPage.TemplateId = templateRestrictions.First().PageTemplateId; } bool addToTop = this.GetBinding <string>("SelectedSortOrder") == "Top"; bool addToBottom = this.GetBinding <string>("SelectedSortOrder") == "Bottom"; bool addToAlphabetic = this.GetBinding <string>("SelectedSortOrder") == "Alphabetic"; bool addToRelative = this.GetBinding <string>("SelectedSortOrder") == "Relative"; using (new DataScope(DataScopeIdentifier.Administrated)) { if (addToTop) { newPage = newPage.AddPageAtTop(parentId); } else if (addToBottom) { newPage = newPage.AddPageAtBottom(parentId); } else if (addToAlphabetic) { newPage = newPage.AddPageAlphabetic(parentId); } else if (addToRelative) { Guid relativeSelectedPageId = this.GetBinding <Guid>("RelativeSelectedPageId"); newPage = newPage.AddPageAfter(parentId, relativeSelectedPageId); } } // Adding default page content IEnumerable <IPageTypeDefaultPageContent> pageTypeDefaultPageContents = DataFacade.GetData <IPageTypeDefaultPageContent>(). Where(f => f.PageTypeId == selectedPageType.Id). Evaluate(); foreach (IPageTypeDefaultPageContent pageTypeDefaultPageContent in pageTypeDefaultPageContents) { IPagePlaceholderContent pagePlaceholderContent = DataFacade.BuildNew <IPagePlaceholderContent>(); pagePlaceholderContent.PageId = newPage.Id; pagePlaceholderContent.PlaceHolderId = pageTypeDefaultPageContent.PlaceHolderId; pagePlaceholderContent.Content = pageTypeDefaultPageContent.Content; DataFacade.AddNew <IPagePlaceholderContent>(pagePlaceholderContent); } // Adding page folders IEnumerable <IPageTypeDataFolderTypeLink> pageTypeDataFolderTypeLinks = DataFacade.GetData <IPageTypeDataFolderTypeLink>(). Where(f => f.PageTypeId == selectedPageType.Id). Evaluate(). RemoveDeadLinks(); foreach (IPageTypeDataFolderTypeLink pageTypeDataFolderTypeLink in pageTypeDataFolderTypeLinks) { newPage.AddFolderDefinition(pageTypeDataFolderTypeLink.DataTypeId); } // Adding applications IEnumerable <IPageTypeTreeLink> pageTypeTreeLinks = DataFacade.GetData <IPageTypeTreeLink>(). Where(f => f.PageTypeId == selectedPageType.Id). Evaluate(). RemoveDeadLinks(); foreach (IPageTypeTreeLink pageTypeTreeLink in pageTypeTreeLinks) { Tree tree = TreeFacade.GetTree(pageTypeTreeLink.TreeId); if (tree.HasAttachmentPoints(newPage.GetDataEntityToken())) { continue; } TreeFacade.AddPersistedAttachmentPoint(pageTypeTreeLink.TreeId, typeof(IPage), newPage.Id); } SetSaveStatus(true); addNewTreeRefresher.PostRefreshMesseges(newPage.GetDataEntityToken()); this.ExecuteWorklow(newPage.GetDataEntityToken(), typeof(EditPageWorkflow)); }