コード例 #1
0
        public void Route(ApplicationModes applicationModes)
        {
            _logger.Info("Application mode: {0}", applicationModes);

            switch (applicationModes)
            {
            case ApplicationModes.Service:
            {
                _logger.Debug("Service selected");
                _serviceProvider.Run(_nzbDroneServiceFactory.Build());
                break;
            }

            case ApplicationModes.Interactive:
            {
                _logger.Debug("Console selected");
                _nzbDroneServiceFactory.Start();
                break;
            }

            case ApplicationModes.InstallService:
            {
                _logger.Debug("Install Service selected");
                if (_serviceProvider.ServiceExist(ServiceProvider.NZBDRONE_SERVICE_NAME))
                {
                    _consoleService.PrintServiceAlreadyExist();
                }
                else
                {
                    _serviceProvider.Install(ServiceProvider.NZBDRONE_SERVICE_NAME);
                    _serviceProvider.Start(ServiceProvider.NZBDRONE_SERVICE_NAME);
                }
                break;
            }

            case ApplicationModes.UninstallService:
            {
                _logger.Debug("Uninstall Service selected");
                if (!_serviceProvider.ServiceExist(ServiceProvider.NZBDRONE_SERVICE_NAME))
                {
                    _consoleService.PrintServiceDoesNotExist();
                }
                else
                {
                    _serviceProvider.UnInstall(ServiceProvider.NZBDRONE_SERVICE_NAME);
                }

                break;
            }

            default:
            {
                _consoleService.PrintHelp();
                break;
            }
            }
        }
コード例 #2
0
        public void Route(ApplicationModes applicationModes)
        {
            _logger.Info("Application mode: {0}", applicationModes);

            switch (applicationModes)
            {
            case ApplicationModes.Service:
            {
                _logger.Debug("Service selected");
                _serviceProvider.Run(_nzbDroneServiceFactory.Build());
                break;
            }

            case ApplicationModes.Interactive:
            {
                _logger.Debug(_runtimeInfo.IsWindowsTray ? "Tray selected" : "Console selected");
                _nzbDroneConsoleFactory.Start();
                break;
            }

            case ApplicationModes.InstallService:
            {
                _logger.Debug("Install Service selected");
                if (_serviceProvider.ServiceExist(ServiceProvider.SERVICE_NAME))
                {
                    _consoleService.PrintServiceAlreadyExist();
                }
                else
                {
                    _remoteAccessAdapter.MakeAccessible(true);
                    _serviceProvider.Install(ServiceProvider.SERVICE_NAME);
                    _serviceProvider.SetPermissions(ServiceProvider.SERVICE_NAME);

                    // Start the service and exit.
                    // Ensures that there isn't an instance of Lidarr already running that the service account cannot stop.
                    _processProvider.SpawnNewProcess("sc.exe", $"start {ServiceProvider.SERVICE_NAME}", null, true);
                }

                break;
            }

            case ApplicationModes.UninstallService:
            {
                _logger.Debug("Uninstall Service selected");
                if (!_serviceProvider.ServiceExist(ServiceProvider.SERVICE_NAME))
                {
                    _consoleService.PrintServiceDoesNotExist();
                }
                else
                {
                    _serviceProvider.Uninstall(ServiceProvider.SERVICE_NAME);
                }

                break;
            }

            case ApplicationModes.RegisterUrl:
            {
                _logger.Debug("Regiser URL selected");
                _remoteAccessAdapter.MakeAccessible(false);

                break;
            }

            default:
            {
                _consoleService.PrintHelp();
                break;
            }
            }
        }