コード例 #1
0
        /// <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);
        }
コード例 #2
0
 /// <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);
         }
     }
 }