Example #1
0
        //http://msdn.microsoft.com/en-us/library/system.web.sitemapnodecollection.aspx
        //http://stackoverflow.com/questions/1960364/asp-net-enumerate-through-sitemapnode-childnodes
        //foreach (var childNode in node.ChildNodes.OrderBy(x => x.Key))
        //public static IEnumerable<SiteMapNode> OrderBy(this SiteMapNodeCollection smnc, Func<SiteMapNode, TKey> expression)
        //{
        //    return smnc.Cast<SiteMapNode>().OrderBy(expression);
        //}
        //http://stackoverflow.com/questions/703130/linq-query-loses-order
        public static SiteMapNode FindNodeAllowedForParentPage(SiteMapNode rootNode, string pageName)
        {
            //SiteMapNode node = rootNode.GetAllNodes().Cast().FirstOrDefault(n => n.Key.Equals(pagekey));
            //return node != null ? node.Url : String.Empty;

            SiteMapNode foundNode = (
                    from SiteMapNode cr in rootNode.GetAllNodes()
                    where cr.Title.StartsWith(pageName)
                        orderby cr.Title
                        select cr
                        ).First();

            mojoSiteMapNode mojoNode = foundNode as mojoSiteMapNode;
            if (mojoNode != null)
            {
                if ((WebUser.IsInRoles(mojoNode.CreateChildPageRoles))||(WebUser.IsInRoles(mojoNode.CreateChildDraftPageRoles))) { return foundNode; }
            }

            return null;
        }
Example #2
0
 /// <summary>
 /// Check if the currently selected node is a decendant of the given node
 /// </summary>
 /// <param name="node">The node which may or may not be an ancestor of the currently selected node</param>
 /// <param name="currentNode">The currently active SiteMapNode</param>
 /// <returns>True if the currently selected node is a decendant of the given node</returns>
 private static bool IsSelectedNodeDescendantOf(SiteMapNode node, SiteMapNode currentNode)
 {
     return node.GetAllNodes().Contains(currentNode);
 }
Example #3
0
        public static mojoSiteMapNode GetSiteMapNodeForPage(SiteMapNode rootNode, int pageId)
        {
            if (rootNode == null) { return null; }

            if (!(rootNode is mojoSiteMapNode)) { return null; }

            foreach (SiteMapNode childNode in rootNode.GetAllNodes())
            {
                if (!(childNode is mojoSiteMapNode)) { return null; }

                mojoSiteMapNode node = childNode as mojoSiteMapNode;
                if (node.PageId == pageId) { return node; }
            }

            return null;
        }
Example #4
0
        private SiteMapNode ChangeCultureSiteMap(SiteMapNode rootToChange, string uiCulture)
        {
            if (!rootToChange.HasChildNodes)
                return rootToChange;

            foreach (SiteMapNode node in rootToChange.GetAllNodes())
            {
                if (Thread.CurrentThread.CurrentUICulture.Name.Contains("es"))
                {
                    if (_nodesEsp.ContainsKey(int.Parse(node.Key)))
                    {
                        node.Title = _nodesEsp[int.Parse(node.Key)];
                        node.Description = _nodesEsp[int.Parse(node.Key)];
                    }
                }
                else if (Thread.CurrentThread.CurrentUICulture.Name.Contains("en"))
                {
                    if (_nodes.ContainsKey(int.Parse(node.Key)))
                    {
                        node.Title = _nodesEn[int.Parse(node.Key)];
                        node.Description = _nodesEn[int.Parse(node.Key)];
                    }
                }

            }
            return rootToChange;
        }