public ConfigurableConnectionWorkflow(ISonarQubeServiceWrapper sonarQubeService)
        {
            if (sonarQubeService == null)
            {
                throw new ArgumentNullException(nameof(sonarQubeService));
            }

            this.sonarQubeService = sonarQubeService;
        }
        public ConfigurableConnectionWorkflow(ISonarQubeServiceWrapper sonarQubeService)
        {
            if (sonarQubeService == null)
            {
                throw new ArgumentNullException(nameof(sonarQubeService));
            }

            this.sonarQubeService = sonarQubeService;
        }
        internal /*for test purposes*/ VsSessionHost(IServiceProvider serviceProvider,
                                                     IStateManager state,
                                                     IProgressStepRunnerWrapper progressStepRunner,
                                                     ISonarQubeServiceWrapper sonarQubeService,
                                                     IActiveSolutionTracker solutionTacker,
                                                     Dispatcher uiDispatcher)
        {
            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            if (sonarQubeService == null)
            {
                throw new ArgumentNullException(nameof(sonarQubeService));
            }

            if (solutionTacker == null)
            {
                throw new ArgumentNullException(nameof(solutionTacker));
            }

            if (uiDispatcher == null)
            {
                throw new ArgumentNullException(nameof(uiDispatcher));
            }

            this.serviceProvider    = serviceProvider;
            this.VisualStateManager = state ?? new StateManager(this, new TransferableVisualState());
            this.progressStepRunner = progressStepRunner ?? this;
            this.UIDispatcher       = uiDispatcher;
            this.SonarQubeService   = sonarQubeService;
            this.solutionTacker     = solutionTacker;
            this.solutionTacker.ActiveSolutionChanged += this.OnActiveSolutionChanged;

            this.RegisterLocalServices();
        }