public RestoreAndCheckForUpdatesAction (Solution solution)
		{
			this.solution = solution;
			packageManagementEvents = PackageManagementServices.PackageManagementEvents;

			solutionManager = PackageManagementServices.Workspace.GetSolutionManager (solution);
			nugetProjects = solutionManager.GetNuGetProjects ().ToList ();

			if (AnyProjectsUsingPackagesConfig ()) {
				restoreManager = new PackageRestoreManager (
					solutionManager.CreateSourceRepositoryProvider (),
					solutionManager.Settings,
					solutionManager
				);
			}

			if (AnyProjectsUsingProjectJson ()) {
				buildIntegratedRestorer = new MonoDevelopBuildIntegratedRestorer (
					solutionManager.CreateSourceRepositoryProvider (),
					solutionManager.Settings);
			}

			if (AnyNuGetAwareProjects ()) {
				nugetAwareRestorer = new NuGetAwareProjectPackageRestoreManager (solutionManager);
			}
		}
        public RestoreAndCheckForUpdatesAction(Solution solution)
        {
            this.solution           = solution;
            packageManagementEvents = PackageManagementServices.PackageManagementEvents;

            solutionManager = PackageManagementServices.Workspace.GetSolutionManager(solution);
            nugetProjects   = solutionManager.GetNuGetProjects().ToList();

            if (AnyProjectsUsingPackagesConfig())
            {
                restoreManager = new PackageRestoreManager(
                    solutionManager.CreateSourceRepositoryProvider(),
                    solutionManager.Settings,
                    solutionManager
                    );
            }

            if (AnyProjectsUsingProjectJson())
            {
                buildIntegratedRestorer = new MonoDevelopBuildIntegratedRestorer(
                    solutionManager.CreateSourceRepositoryProvider(),
                    solutionManager.Settings);
            }

            if (AnyNuGetAwareProjects())
            {
                nugetAwareRestorer = new NuGetAwareProjectPackageRestoreManager(solutionManager);
            }
        }
        async Task PrepareForExecute()
        {
            nugetProjects = (await solutionManager.GetNuGetProjectsAsync()).ToList();
            if (AnyProjectsUsingPackagesConfig())
            {
                restoreManager = new PackageRestoreManager(
                    sourceRepositoryProvider,
                    solutionManager.Settings,
                    solutionManager
                    );
            }

            if (AnyDotNetCoreProjectsOrProjectsUsingProjectJson())
            {
                buildIntegratedRestorer = new MonoDevelopBuildIntegratedRestorer(
                    solutionManager,
                    sourceRepositoryProvider,
                    solutionManager.Settings);
            }

            if (AnyNuGetAwareProjects())
            {
                nugetAwareRestorer = new NuGetAwareProjectPackageRestoreManager(solutionManager);
            }
        }
        public RestoreAndCheckForUpdatesAction(Solution solution)
        {
            this.solution           = solution;
            packageManagementEvents = PackageManagementServices.PackageManagementEvents;

            solutionManager = PackageManagementServices.Workspace.GetSolutionManager(solution);
            solutionManager.ClearProjectCache();
            nugetProjects = solutionManager.GetNuGetProjects().ToList();

            // Use the same source repository provider for all restores and updates to prevent
            // the credential dialog from being displayed for each restore and updates.
            sourceRepositoryProvider = solutionManager.CreateSourceRepositoryProvider();

            if (AnyProjectsUsingPackagesConfig())
            {
                restoreManager = new PackageRestoreManager(
                    sourceRepositoryProvider,
                    solutionManager.Settings,
                    solutionManager
                    );
            }

            if (AnyDotNetCoreProjectsOrProjectsUsingProjectJson())
            {
                buildIntegratedRestorer = new MonoDevelopBuildIntegratedRestorer(
                    solutionManager,
                    sourceRepositoryProvider,
                    solutionManager.Settings);
            }

            if (AnyNuGetAwareProjects())
            {
                nugetAwareRestorer = new NuGetAwareProjectPackageRestoreManager(solutionManager);
            }
        }
        public RestoreNuGetPackagesInNuGetAwareProjectAction(
            DotNetProject project,
            IMonoDevelopSolutionManager solutionManager)
        {
            nugetAwareProject = (INuGetAwareProject)project;

            packageManagementEvents = PackageManagementServices.PackageManagementEvents;

            restoreManager = new NuGetAwareProjectPackageRestoreManager(
                solutionManager
                );
        }
		public RestoreNuGetPackagesInNuGetAwareProjectAction (
			DotNetProject project,
			IMonoDevelopSolutionManager solutionManager)
		{
			nugetAwareProject = (INuGetAwareProject)project;

			packageManagementEvents = PackageManagementServices.PackageManagementEvents;

			restoreManager = new NuGetAwareProjectPackageRestoreManager (
				solutionManager
			);
		}