internal void Rename(string newName, DefaultNodeRename defaultNodeRename) { if (newName == null) { throw new ArgumentNullException("newName"); } if (newName == Name) { return; } string oldName = Name; if (parent == null) { Site.Name = newName; } else { if (parent.childNodeLookup.Contains(newName)) { throw new InvalidOperationException(SR.ExceptionNodeNameAlreadyExists(newName)); } if (defaultNodeRename == DefaultNodeRename.DoNotForceRename) { parent.childNodeLookup.Remove(oldName); try { parent.childNodeLookup.Add(newName, this); } catch { parent.childNodeLookup.Add(oldName, this); throw; } } Site.Name = newName; } if (defaultNodeRename == DefaultNodeRename.DoNotForceRename) { Hierarchy.RenameNode(this, oldName, newName); } OnRenamed(new ConfigurationNodeChangedEventArgs(ConfigurationNodeChangedAction.Rename, this, parent)); }