/// <summary> /// Creates a hardwarenode and adds it to the Network and to the NetworkViewController. /// </summary> /// <param name="Type">Type of the node</param> /// <param name="Name">The name.</param> /// <returns> /// The new created hardwarenode. /// </returns> public Hardwarenode CreateHardwareNode(HardwarenodeType Type, string Name = null) { Hardwarenode node = null; string nodeName = Name ?? CreateUniqueName(Type); switch (Type) { case HardwarenodeType.Switch: node = new Switch(nodeName); break; case HardwarenodeType.Workstation: node = new Workstation(nodeName); break; case HardwarenodeType.Router: node = new Router(nodeName); break; } // Add node to the Network and to the NetworkViewController network.AddHardwarenode(node); NetworkViewController.Instance.AddHardwarenode(node); return(node); }
/// <summary> /// Creates a unique name. /// </summary> /// <param name="Type">The type.</param> /// <returns></returns> private string CreateUniqueName(HardwarenodeType Type) { for (int i = 1; ; i++) { string name = $"{Type} {i}"; if (GetAllHardwareNodes().All(N => N.Name != name)) { return(name); } } }