コード例 #1
0
ファイル: AdminController.cs プロジェクト: andy10james/Neural
        private Boolean AddNewServer(String[] parameters)
        {
            Int16 port;

            if (parameters.Length != 2)
            {
                NLConsole.WriteLine(UIStrings.InvNoOfArgs);
                return(false);
            }
            else if (!Int16.TryParse(parameters[0], out port))
            {
                NLConsole.WriteLine(UIStrings.InvPort);
                return(false);
            }
            else if (ServersDirector.Exists(port))
            {
                String message = String.Format(UIStrings.ServerExistsOnPort, port);
                NLConsole.WriteLine(message, ConsoleColor.White);
                return(false);
            }
            else if (!ServersDirector.IsPortAvailable(port))
            {
                String message = String.Format(UIStrings.PortUnavailable, port);
                NLConsole.WriteLine(message, ConsoleColor.White);
                return(false);
            }

            String controllerName = parameters[1];

            if (!controllerName.StartsWith("NL."))
            {
                controllerName = "NL.Server.Controllers." + controllerName;
            }

            Assembly          assembly = Assembly.GetExecutingAssembly();
            IRemoteController controller;

            try {
                controller = (IRemoteController)assembly.CreateInstance(controllerName, true);
            } catch (InvalidCastException e) {
                NLConsole.WriteLine(UIStrings.ControllerDoesNotExist, ConsoleColor.White);
                return(false);
            }

            if (controller == null)
            {
                NLConsole.WriteLine(UIStrings.ControllerDoesNotExist, ConsoleColor.White);
                return(false);
            }

            ServersDirector.AddServer(port, controller);
            return(true);
        }
コード例 #2
0
ファイル: AdminController.cs プロジェクト: andy10james/Neural
        private Boolean DisconnectIP(String[] parameters)
        {
            if (parameters.Length != 1)
            {
                NLConsole.WriteLine(UIStrings.InvNoOfArgs, ConsoleColor.White);
                return(false);
            }
            IPAddress ipaddress;

            if (!IPAddress.TryParse(parameters[0], out ipaddress))
            {
                NLConsole.WriteLine(UIStrings.InvIPAddress, ConsoleColor.White);
                return(false);
            }
            Int32  disconnected = ServersDirector.DisconnectIP(ipaddress);
            String response     = String.Format(UIStrings.IPDisconnected, disconnected);

            NLConsole.WriteLine(response, ConsoleColor.White);
            return(true);
        }
コード例 #3
0
ファイル: AdminController.cs プロジェクト: andy10james/Neural
        private Boolean RemoveServer(String[] parameters)
        {
            Int16 port;

            if (parameters.Length != 1)
            {
                NLConsole.WriteLine(UIStrings.InvNoOfArgs);
                return(false);
            }
            else if (!Int16.TryParse(parameters[0], out port))
            {
                NLConsole.WriteLine(UIStrings.InvPort);
                return(false);
            }
            else if (!ServersDirector.Exists(port))
            {
                String message = String.Format(UIStrings.ServerDoesNotExistOnPort, port);
                NLConsole.WriteLine(message, ConsoleColor.White);
                return(false);
            }
            ServersDirector.RemoveServer(port);
            return(true);
        }
コード例 #4
0
ファイル: AdminController.cs プロジェクト: andy10james/Neural
        private Boolean DisconnectServer(String[] parameters)
        {
            Int16 port = 0;

            if (parameters.Length != 1)
            {
                NLConsole.WriteLine(UIStrings.InvNoOfArgs, ConsoleColor.White);
                return(false);
            }

            if (parameters[0].Equals("*"))
            {
                ServersDirector.DisconnectAll();
                return(false);
            }

            if (!Int16.TryParse(parameters[0], out port))
            {
                NLConsole.WriteLine(UIStrings.InvPort, ConsoleColor.White);
                return(false);
            }
            else if (!ServersDirector.Exists(port))
            {
                NLConsole.WriteLine(UIStrings.ServerDoesNotExistOnPort, ConsoleColor.White);
                return(false);
            }
            else if (!ServersDirector.IsConnected(port))
            {
                NLConsole.WriteLine(UIStrings.ServerNotConnected, ConsoleColor.White);
                return(false);
            }
            else
            {
                ServersDirector.Disconnect(port);
                return(true);
            }
        }