コード例 #1
0
        public void UpdateNode(NodeFactory.Node node)
        {
            lock (this) {
                // validate sitemap
                BuildSiteMap();

                SiteMapNode n;
                if (!m_nodes.ContainsKey(node.Id.ToString()))
                {
                    n = createNode(node.Id.ToString(),
                                   node.Name,
                                   node.GetProperty(m_defaultDescriptionAlias) != null ? node.GetProperty(m_defaultDescriptionAlias).Value : "",
                                   node.Url,
                                   findRoles(node.Id, node.Path));
                    string parentNode = node.Parent == null ? "-1" : node.Parent.Id.ToString();

                    try {
                        AddNode(n, m_nodes[parentNode]);
                    } catch (Exception ex) {
                        LogHelper.Error <UmbracoSiteMapProvider>(String.Format("Error adding node with url '{0}' and Id {1} to SiteMapProvider", node.Name, node.Id), ex);
                    }
                }
                else
                {
                    n             = m_nodes[node.Id.ToString()];
                    n.Url         = node.Url;
                    n.Description = node.GetProperty(m_defaultDescriptionAlias) != null?node.GetProperty(m_defaultDescriptionAlias).Value : "";

                    n.Title = node.Name;
                    n.Roles = findRoles(node.Id, node.Path).Split(",".ToCharArray());
                }
            }
        }