private bool CreateLocalizedPage(ref Guid pageId, string pageName, Guid parentPageId, LocalizationStrategy localizationStrategy, CultureInfo cultureInfo, NodeType nodeType) { var currentCulture = Thread.CurrentThread.CurrentUICulture; Thread.CurrentThread.CurrentUICulture = cultureInfo; Thread.CurrentThread.CurrentCulture = cultureInfo; var manager = PageManager.GetManager(); PageNode pageNode = null; var result = false; var id = pageId; pageNode = manager.GetPageNodes() .Where(n => n.Id == id) .SingleOrDefault(); if (pageNode != null && pageNode.AvailableCultures.Contains(cultureInfo)) { pageId = pageNode.Id; return(result); } result = true; if (pageNode == null) { var parentId = parentPageId; if (parentId == Guid.Empty) { parentId = SiteInitializer.CurrentFrontendRootNodeId; } ////Create Page PageNode parent = manager.GetPageNode(parentId); pageNode = manager.CreatePage(parent, pageId, nodeType); pageNode.Name = pageName; pageNode.UrlName = pageName; pageNode.Description = pageName; pageNode.Title = pageName; pageNode.ShowInNavigation = true; pageNode.DateCreated = DateTime.UtcNow; pageNode.LastModified = DateTime.UtcNow; pageNode.ShowInNavigation = true; pageId = pageNode.Id; } else { ////TranslatePage pageNode.UrlName = pageName; pageNode.Description = pageName; pageNode.Title = pageName; manager.InitializePageLocalizationStrategy(pageNode, localizationStrategy, false); } var pageData = pageNode.GetPageData(); if (pageData != null) { pageData.HtmlTitle[cultureInfo] = pageName; pageData.NavigationNode.Title[cultureInfo] = pageName; pageData.Description[cultureInfo] = pageName; var draft = manager.EditPage(pageData.Id); manager.PublishPageDraft(draft, cultureInfo); } manager.RecompileItemUrls <PageNode>(pageNode); manager.SaveChanges(); Thread.CurrentThread.CurrentUICulture = currentCulture; Thread.CurrentThread.CurrentCulture = currentCulture; return(result); }
private bool CreateLocalizedPage(ref Guid pageId, string pageName, Guid parentPageId, LocalizationStrategy localizationStrategy, CultureInfo cultureInfo, NodeType nodeType) { var currentCulture = Thread.CurrentThread.CurrentUICulture; Thread.CurrentThread.CurrentUICulture = cultureInfo; Thread.CurrentThread.CurrentCulture = cultureInfo; var manager = PageManager.GetManager(); PageNode pageNode = null; var result = false; var id = pageId; pageNode = manager.GetPageNodes() .Where(n => n.Id == id) .SingleOrDefault(); if (pageNode != null && pageNode.AvailableCultures.Contains(cultureInfo)) { pageId = pageNode.Id; return result; } result = true; if (pageNode == null) { var parentId = parentPageId; if (parentId == Guid.Empty) { parentId = SiteInitializer.CurrentFrontendRootNodeId; } ////Create Page PageNode parent = manager.GetPageNode(parentId); pageNode = manager.CreatePage(parent, pageId, nodeType); pageNode.Name = pageName; pageNode.UrlName = pageName; pageNode.Description = pageName; pageNode.Title = pageName; pageNode.ShowInNavigation = true; pageNode.DateCreated = DateTime.UtcNow; pageNode.LastModified = DateTime.UtcNow; pageNode.ShowInNavigation = true; pageId = pageNode.Id; } else { ////TranslatePage pageNode.UrlName = pageName; pageNode.Description = pageName; pageNode.Title = pageName; manager.InitializePageLocalizationStrategy(pageNode, localizationStrategy, false); } var pageData = pageNode.GetPageData(); if (pageData != null) { pageData.HtmlTitle[cultureInfo] = pageName; pageData.NavigationNode.Title[cultureInfo] = pageName; pageData.Description[cultureInfo] = pageName; var draft = manager.EditPage(pageData.Id); manager.PublishPageDraft(draft, cultureInfo); } manager.RecompileItemUrls<PageNode>(pageNode); manager.SaveChanges(); Thread.CurrentThread.CurrentUICulture = currentCulture; Thread.CurrentThread.CurrentCulture = currentCulture; return result; }