Exemplo n.º 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) {
                        BusinessLogic.Log.Add(
                            LogTypes.Error,
                            -1,
                            String.Format("Error adding node with url '{0}' to SiteMapProvider: {1}", node.Name, 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());
                }
            }
        }