예제 #1
0
        /// <summary>
        ///     Starts various parts of the server than loop to keep everything alive.
        /// </summary>
        private void Setup()
        {
            Console.WriteLine("Creating settings");

            var settings = Config.Load();



            Console.WriteLine("Configuring up server");
            Tools.ConfigureServer();



            Console.WriteLine(Assembly.GetExecutingAssembly().GetName().Version);
            var useTerminal  = settings.Terminal.AllowTerminal;
            var useWebServer = settings.WebServer.ToggleWebServer;
            var useWebCams   = settings.Webcams.UseWebcams;

            if (useWebCams)
            {
                Console.WriteLine("Loading Webcams");
                WebCamManager.LoadCameras();
            }
            if (useWebServer)
            {
                Console.WriteLine("Setting up HTTP Server");
                HttpServer.Setup();
            }
            systemService = new SystemService();
            Console.WriteLine("Creating system service");
            systemService.Start();
            UlteriusApiServer.RunningAsService = Tools.RunningAsService();
            Console.Write($"Service: {UlteriusApiServer.RunningAsService}");
            UlteriusApiServer.Start();

            if (useTerminal)
            {
                Console.WriteLine("Starting Terminal API");
                TerminalManagerServer.Start();
            }
            try
            {
                var useUpnp = settings.Network.UpnpEnabled;
                if (useUpnp)
                {
                    Console.WriteLine("Trying to forward ports");
                    Tools.ForwardPorts();
                }
            }
            catch (Exception)
            {
                Console.WriteLine("Failed to forward ports");
            }
        }