示例#1
0
        protected PowerShellHost(string name, IRestoreEvents restoreEvents, IRunspaceManager runspaceManager)
        {
            _restoreEvents   = restoreEvents;
            _runspaceManager = runspaceManager;

            // TODO: Take these as ctor arguments
            _sourceRepositoryProvider = ServiceLocator.GetInstance <ISourceRepositoryProvider>();
            _solutionManager          = ServiceLocator.GetInstance <IVsSolutionManager>();
            _settings = ServiceLocator.GetInstance <ISettings>();
            _deleteOnRestartManager = ServiceLocator.GetInstance <IDeleteOnRestartManager>();
            _scriptExecutor         = ServiceLocator.GetInstance <IScriptExecutor>();

            _dte = ServiceLocator.GetInstance <DTE>();
            _sourceControlManagerProvider = ServiceLocator.GetInstanceSafe <ISourceControlManagerProvider>();
            _commonOperations             = ServiceLocator.GetInstanceSafe <ICommonOperations>();
            PackageManagementContext      = new PackageManagementContext(_sourceRepositoryProvider, _solutionManager,
                                                                         _settings, _sourceControlManagerProvider, _commonOperations);

            _name            = name;
            IsCommandEnabled = true;

            InitializeSources();

            _sourceRepositoryProvider.PackageSourceProvider.PackageSourcesChanged += PackageSourceProvider_PackageSourcesChanged;
            _restoreEvents.SolutionRestoreCompleted += RestoreEvents_SolutionRestoreCompleted;
        }
        public PowerShellHostProvider(IRestoreEvents restoreEvents)
        {
            if (restoreEvents == null)
            {
                throw new ArgumentNullException(nameof(restoreEvents));
            }

            _restoreEvents = restoreEvents;
        }
        public static IHost CreateHost(string name, IRestoreEvents restoreEvents, bool isAsync)
        {
            IHost host;

            if (isAsync)
            {
                host = new AsyncPowerShellHost(name, restoreEvents, _runspaceManager);
            }
            else
            {
                host = new SyncPowerShellHost(name, restoreEvents, _runspaceManager);
            }

            return(host);
        }
        protected PowerShellHost(string name, IRestoreEvents restoreEvents, IRunspaceManager runspaceManager)
        {
            _restoreEvents   = restoreEvents;
            _runspaceManager = runspaceManager;

            // TODO: Take these as ctor arguments
            var componentModel = NuGetUIThreadHelper.JoinableTaskFactory.Run(ServiceLocator.GetComponentModelAsync);

            _sourceRepositoryProvider = componentModel.GetService <ISourceRepositoryProvider>();
            _solutionManager          = new Lazy <IVsSolutionManager>(() => componentModel.GetService <IVsSolutionManager>());
            _settings = new Lazy <ISettings>(() => componentModel.GetService <ISettings>());
            _deleteOnRestartManager  = new Lazy <IDeleteOnRestartManager>(() => componentModel.GetService <IDeleteOnRestartManager>());
            _scriptExecutor          = new Lazy <IScriptExecutor>(() => componentModel.GetService <IScriptExecutor>());
            _restoreProgressReporter = new Lazy <IRestoreProgressReporter>(() => componentModel.GetService <IRestoreProgressReporter>());

            _dte = new Lazy <DTE>(() => ServiceLocator.GetInstance <DTE>());
            _sourceControlManagerProvider = new Lazy <ISourceControlManagerProvider>(
                () => componentModel.GetService <ISourceControlManagerProvider>());
            _commonOperations = new Lazy <ICommonOperations>(() => componentModel.GetService <ICommonOperations>());
            _name             = name;
            IsCommandEnabled  = true;

            InitializeSources();

            _sourceRepositoryProvider.PackageSourceProvider.PackageSourcesChanged += PackageSourceProvider_PackageSourcesChanged;
            _restoreEvents.SolutionRestoreCompleted += RestoreEvents_SolutionRestoreCompleted;

            _vsMonitorSelection = new Microsoft.VisualStudio.Threading.AsyncLazy <IVsMonitorSelection>(
                async() =>
            {
                await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

                // get the UI context cookie for the debugging mode
                var vsMonitorSelection = ServiceLocator.GetGlobalService <IVsMonitorSelection, IVsMonitorSelection>();

                var guidCmdUI = VSConstants.UICONTEXT.SolutionExists_guid;
                vsMonitorSelection.GetCmdUIContextCookie(
                    ref guidCmdUI, out _solutionExistsCookie);

                return(vsMonitorSelection);
            },
                ThreadHelper.JoinableTaskFactory);
        }
 public AsyncPowerShellHost(string name, IRestoreEvents restoreEvents, IRunspaceManager runspaceManager)
     : base(name, restoreEvents, runspaceManager)
 {
 }