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()); } } }