public override SiteMapNode GetParentNode(SiteMapNode node) { if (node == null) { throw new ArgumentNullException("node"); } CheckStaticSiteMap(); // Look up the table. SiteMapNode parentNode; if (_currentState.ParentNodes.TryGetValue(node, out parentNode)) { return(parentNode); } // Ask the parent provider. if (parentNode == null && ParentProvider != null) { return(ParentProvider.GetParentNode(node)); } else { return(null); } }
/// <exclude /> public override SiteMapNode GetParentNode(SiteMapNode node) { Verify.ArgumentNotNull(node, "node"); var pageSiteMapNode = (CmsPageSiteMapNode)node; IPage parentPage = null; using (new DataScope(pageSiteMapNode.Culture)) { Guid parentPageId = PageManager.GetParentId(pageSiteMapNode.Page.Id); if (parentPageId != Guid.Empty) { parentPage = PageManager.GetPageById(parentPageId); } } SiteMapNode parentNode; if (parentPage != null) { parentNode = new CmsPageSiteMapNode(this, parentPage); } else { parentNode = ParentProvider?.GetParentNode(node); } return(parentNode != null && parentNode.IsAccessibleToUser(HttpContext.Current) ? parentNode : null); }
/// <exclude /> public override SiteMapNode GetParentNode(SiteMapNode node) { Verify.ArgumentNotNull(node, "node"); SiteMapNode parentNode; var culture = node is CompositeC1SiteMapNode ? ((CompositeC1SiteMapNode)node).Culture : LocalizationScopeManager.CurrentLocalizationScope; var container = GetContainer(culture); container.ParentNodesMap.TryGetValue(node.Key, out parentNode); if (parentNode == null && ParentProvider != null) { parentNode = ParentProvider.GetParentNode(node); } if (parentNode == null) { return(null); } if (!parentNode.IsAccessibleToUser(HttpContext.Current)) { return(null); } return(parentNode); }
public override SiteMapNode GetParentNode(SiteMapNode node) { if (node == null) { throw new ArgumentNullException("node"); } BuildSiteMap(); SiteMapNode parent = (SiteMapNode)ParentNodeTable[node]; if (parent == null) { // Try to find the original node in the table using the key SiteMapNode fallbackNode = (SiteMapNode)KeyTable[node.Key]; if (fallbackNode != null) { parent = (SiteMapNode)ParentNodeTable[fallbackNode]; } } // Try the parent providers. if (parent == null && ParentProvider != null) { parent = ParentProvider.GetParentNode(node); } return(ReturnNodeIfAccessible(parent)); }
public override SiteMapNode GetParentNode(SiteMapNode node) { if (node.Key == rootPath) { return(ParentProvider.GetParentNode(node)); } return(directoryFactory.CreateNodeFromPath(Path.GetDirectoryName(node.Key))); }