// Non-private only to facilitate testing.
        internal NuGetUIContext(
            ISourceRepositoryProvider sourceProvider,
            IServiceBroker serviceBroker,
            IVsSolutionManager solutionManager,
            NuGetSolutionManagerServiceWrapper solutionManagerService,
            NuGetPackageManager packageManager,
            UIActionEngine uiActionEngine,
            IPackageRestoreManager packageRestoreManager,
            IOptionsPageActivator optionsPageActivator,
            IUserSettingsManager userSettingsManager,
            IEnumerable <IVsPackageManagerProvider> packageManagerProviders)
        {
            SourceProvider          = sourceProvider;
            ServiceBroker           = serviceBroker;
            SolutionManager         = solutionManager;
            _solutionManagerService = solutionManagerService;
            PackageManager          = packageManager;
            UIActionEngine          = uiActionEngine;
            PackageManager          = packageManager;
            PackageRestoreManager   = packageRestoreManager;
            OptionsPageActivator    = optionsPageActivator;
            UserSettingsManager     = userSettingsManager;
            PackageManagerProviders = packageManagerProviders;

            ServiceBroker.AvailabilityChanged += OnAvailabilityChanged;
            SolutionManager.ActionsExecuted   += OnActionsExecuted;
        }
Exemple #2
0
        // Non-private only to facilitate testing.
        internal NuGetUIContext(
            IServiceBroker serviceBroker,
            IReconnectingNuGetSearchService nuGetSearchService,
            IVsSolutionManager solutionManager,
            NuGetSolutionManagerServiceWrapper solutionManagerService,
            NuGetPackageManager packageManager,
            UIActionEngine uiActionEngine,
            IPackageRestoreManager packageRestoreManager,
            IOptionsPageActivator optionsPageActivator,
            IUserSettingsManager userSettingsManager,
            NuGetSourcesServiceWrapper sourceService)
        {
            ServiceBroker             = serviceBroker;
            ReconnectingSearchService = nuGetSearchService;
            SolutionManager           = solutionManager;
            _solutionManagerService   = solutionManagerService;
            PackageManager            = packageManager;
            UIActionEngine            = uiActionEngine;
            PackageManager            = packageManager;
            PackageRestoreManager     = packageRestoreManager;
            OptionsPageActivator      = optionsPageActivator;
            UserSettingsManager       = userSettingsManager;
            _sourceService            = sourceService;

            ServiceBroker.AvailabilityChanged += OnAvailabilityChanged;
            SolutionManager.ActionsExecuted   += OnActionsExecuted;
        }
        public static async ValueTask <NuGetUIContext> CreateAsync(
            IServiceBroker serviceBroker,
            ISourceRepositoryProvider sourceRepositoryProvider,
            ISettings settings,
            IVsSolutionManager solutionManager,
            IPackageRestoreManager packageRestoreManager,
            IOptionsPageActivator optionsPageActivator,
            IUserSettingsManager userSettingsManager,
            IDeleteOnRestartManager deleteOnRestartManager,
            IEnumerable <IVsPackageManagerProvider> packageManagerProviders,
            INuGetLockService lockService,
            CancellationToken cancellationToken)
        {
            Assumes.NotNull(serviceBroker);
            Assumes.NotNull(sourceRepositoryProvider);
            Assumes.NotNull(settings);
            Assumes.NotNull(solutionManager);
            Assumes.NotNull(packageRestoreManager);
            Assumes.NotNull(optionsPageActivator);
            Assumes.NotNull(userSettingsManager);
            Assumes.NotNull(deleteOnRestartManager);
            Assumes.NotNull(packageManagerProviders);
            Assumes.NotNull(lockService);

            cancellationToken.ThrowIfCancellationRequested();

            var solutionManagerServiceWrapper = new NuGetSolutionManagerServiceWrapper();
            INuGetSolutionManagerService solutionManagerService = await GetSolutionManagerServiceAsync(serviceBroker, cancellationToken);

            // The initial Swap(...) should return a null implementation of the interface that does not require disposal.
            // However, there's no harm in following form.
            using (solutionManagerServiceWrapper.Swap(solutionManagerService))
            {
            }

            var packageManager = new NuGetPackageManager(
                sourceRepositoryProvider,
                settings,
                solutionManager,
                deleteOnRestartManager);

            var actionEngine = new UIActionEngine(
                sourceRepositoryProvider,
                packageManager,
                lockService);

            return(new NuGetUIContext(
                       sourceRepositoryProvider,
                       serviceBroker,
                       solutionManager,
                       solutionManagerServiceWrapper,
                       packageManager,
                       actionEngine,
                       packageRestoreManager,
                       optionsPageActivator,
                       userSettingsManager,
                       packageManagerProviders));
        }
Exemple #4
0
        public static async ValueTask <NuGetUIContext> CreateAsync(
            IServiceBroker serviceBroker,
            ISourceRepositoryProvider sourceRepositoryProvider,
            ISettings settings,
            IVsSolutionManager solutionManager,
            IPackageRestoreManager packageRestoreManager,
            IOptionsPageActivator optionsPageActivator,
            IUserSettingsManager userSettingsManager,
            IDeleteOnRestartManager deleteOnRestartManager,
            IEnumerable <IVsPackageManagerProvider> packageManagerProviders,
            INuGetLockService lockService,
            CancellationToken cancellationToken)
        {
            Assumes.NotNull(serviceBroker);
            Assumes.NotNull(sourceRepositoryProvider);
            Assumes.NotNull(settings);
            Assumes.NotNull(solutionManager);
            Assumes.NotNull(packageRestoreManager);
            Assumes.NotNull(optionsPageActivator);
            Assumes.NotNull(userSettingsManager);
            Assumes.NotNull(deleteOnRestartManager);
            Assumes.NotNull(packageManagerProviders);
            Assumes.NotNull(lockService);

            cancellationToken.ThrowIfCancellationRequested();

            var solutionManagerServiceWrapper = new NuGetSolutionManagerServiceWrapper();
            INuGetSolutionManagerService solutionManagerService = await GetSolutionManagerServiceAsync(serviceBroker, cancellationToken);

            // The initial Swap(...) should return a null implementation of the interface that does not require disposal.
            // However, there's no harm in following form.
            using (solutionManagerServiceWrapper.Swap(solutionManagerService))
            {
            }

            var sourceServiceWrapper           = new NuGetSourcesServiceWrapper();
            INuGetSourcesService sourceService = await GetSourceServiceAsync(serviceBroker, cancellationToken);

            using (sourceServiceWrapper.Swap(sourceService))
            {
            }

#pragma warning disable CA2000 // Dispose objects before losing scope - NuGetUIContext owns the instance and should dispose it.
            var searchService = await NuGetSearchServiceReconnector.CreateAsync(serviceBroker, NuGetUIThreadHelper.JoinableTaskFactory, cancellationToken);

#pragma warning restore CA2000 // Dispose objects before losing scope

            var packageManager = new NuGetPackageManager(
                sourceRepositoryProvider,
                settings,
                solutionManager,
                deleteOnRestartManager);

            var actionEngine = new UIActionEngine(
                sourceRepositoryProvider,
                packageManager,
                lockService);

            return(new NuGetUIContext(
                       serviceBroker,
                       searchService.Object,
                       solutionManager,
                       solutionManagerServiceWrapper,
                       packageManager,
                       actionEngine,
                       packageRestoreManager,
                       optionsPageActivator,
                       userSettingsManager,
                       packageManagerProviders,
                       sourceServiceWrapper));
        }