public SiteMapBuilderNode AddNode(SiteMapBuilderNode entry) { // go up if (entry.Depth <= Depth) { return(Parent.AddNode(entry)); } else { // current child foreach (var child in Children) { if (child.Title == entry.Title) { if (!(string.IsNullOrWhiteSpace(entry.Text.Replace(entry.Title, string.Empty).Replace("+", string.Empty)))) { child.Text = entry.Text; } return(child); } } Children.Add(entry); entry.Parent = this; return(entry); } }
public void Insert(string title, int depth, string text) { if (_last == null) { _last = _root; } var entry = new SiteMapBuilderNode(title, depth, text); _last = _last.AddNode(entry); }