public void Run (ProgressMonitorStatusMessage progressMessage, IEnumerable<IPackageAction> actions)
		{
			AddInstallActionsToPendingQueue (actions);
			packageManagementEvents.OnPackageOperationsStarting ();
			runCount++;
			BackgroundDispatch (() => TryRunActionsWithProgressMonitor (progressMessage, actions.ToList ()));
		}
 public void Run(
     ProgressMonitorStatusMessage progressMessage,
     IEnumerable <IPackageAction> actions,
     bool clearConsole)
 {
     Run(progressMessage, actions, null, clearConsole);
 }
		public void Run (ProgressMonitorStatusMessage progressMessage, IPackageAction action)
		{
			RunProgressMessage = progressMessage;
			ActionRun = action;

			RunAction (progressMessage, action);
		}
        public Task RunAsync(ProgressMonitorStatusMessage progressMessage, IEnumerable <IPackageAction> actions)
        {
            var taskCompletionSource = new TaskCompletionSource <bool> ();

            Run(progressMessage, actions, taskCompletionSource);
            return(taskCompletionSource.Task);
        }
        public override void Run(Solution solution, IList <PackageReferencesForCreatedProject> packageReferencesForCreatedProjects)
        {
            List <InstallPackageAction>  installPackageActions = CreateInstallPackageActions(solution, packageReferencesForCreatedProjects);
            ProgressMonitorStatusMessage progressMessage       = ProgressMonitorStatusMessageFactory.CreateInstallingProjectTemplatePackagesMessage();

            backgroundPackageActionRunner.Run(progressMessage, installPackageActions);
        }
 public void RunAndWait(ProgressMonitorStatusMessage progressMessage, IEnumerable <IPackageAction> actions)
 {
     AddInstallActionsToPendingQueue(actions);
     packageManagementEvents.OnPackageOperationsStarting();
     runCount++;
     BackgroundDispatchAndWait(() => TryRunActionsWithProgressMonitor(progressMessage, actions.ToList()));
 }
 void RunActionsWithProgressMonitor(
     ProgressMonitorStatusMessage progressMessage,
     IList <IPackageAction> installPackageActions,
     TaskCompletionSource <bool> taskCompletionSource,
     bool clearConsole,
     CancellationTokenSource cancellationTokenSource)
 {
     using (ProgressMonitor monitor = progressMonitorFactory.CreateProgressMonitor(progressMessage.Status, clearConsole, cancellationTokenSource)) {
         using (PackageManagementEventsMonitor eventMonitor = CreateEventMonitor(monitor, taskCompletionSource)) {
             try {
                 monitor.BeginTask(null, installPackageActions.Count);
                 RunActionsWithProgressMonitor(monitor, installPackageActions);
                 eventMonitor.ReportResult(progressMessage);
             } catch (Exception ex) {
                 RemoveInstallActions(installPackageActions);
                 bool showPackageConsole = !monitor.CancellationToken.IsCancellationRequested;
                 eventMonitor.ReportError(progressMessage, ex, showPackageConsole);
             } finally {
                 monitor.EndTask();
                 GuiDispatch(() => {
                     RemoveInstallActions(installPackageActions);
                     packageManagementEvents.OnPackageOperationsFinished();
                 });
             }
         }
     }
 }
Exemplo n.º 8
0
		void RestorePackages(IProgressMonitor progressMonitor, ProgressMonitorStatusMessage progressMessage)
		{
			var commandLine = new NuGetPackageRestoreCommandLine(solution);

			progressMonitor.Log.WriteLine(commandLine.ToString());

			RestorePackages(progressMonitor, progressMessage, commandLine);
		}
 public void ShowError(ProgressMonitorStatusMessage progressMessage, string error)
 {
     using (IProgressMonitor monitor = progressMonitorFactory.CreateProgressMonitor(progressMessage.Status)) {
         monitor.Log.WriteLine(error);
         monitor.ReportError(progressMessage.Error, null);
         monitor.ShowPackageConsole();
     }
 }
Exemplo n.º 10
0
        void RestorePackages(IProgressMonitor progressMonitor, ProgressMonitorStatusMessage progressMessage)
        {
            var commandLine = new NuGetPackageRestoreCommandLine(solution);

            progressMonitor.Log.WriteLine(commandLine.ToString());

            RestorePackages(progressMonitor, progressMessage, commandLine);
        }
 public void ReportError(ProgressMonitorStatusMessage progressMessage, Exception ex)
 {
     LoggingService.LogInternalError(ex);
     progressMonitor.Log.WriteLine(ex.Message);
     progressMonitor.ReportError(progressMessage.Error, null);
     ShowPackageConsole(progressMonitor);
     packageManagementEvents.OnPackageOperationError(ex);
 }
		public CheckForUpdatesProgressMonitor (
			IPackageManagementProgressMonitorFactory progressMonitorFactory,
			IPackageManagementEvents packageEvents)
		{
			progressMessage = ProgressMonitorStatusMessageFactory.CreateCheckingForPackageUpdatesMessage ();
			this.progressMonitor = progressMonitorFactory.CreateProgressMonitor (progressMessage.Status);

			eventMonitor = new PackageUpdatesEventMonitor (progressMonitor, packageEvents);
		}
Exemplo n.º 13
0
		void CheckForPackageUpdates (IProgressMonitor progressMonitor, ProgressMonitorStatusMessage progressMessage)
		{
			updatedPackagesInSolution.CheckForUpdates ();
			if (updatedPackagesInSolution.AnyUpdates ()) {
				progressMonitor.ReportSuccess (GettextCatalog.GetString ("Package updates are available."));
			} else {
				progressMonitor.ReportSuccess (progressMessage.Success);
			}
		}
Exemplo n.º 14
0
        public CheckForUpdatesProgressMonitor(
            IPackageManagementProgressMonitorFactory progressMonitorFactory,
            IPackageManagementEvents packageEvents)
        {
            progressMessage      = ProgressMonitorStatusMessageFactory.CreateCheckingForPackageUpdatesMessage();
            this.progressMonitor = progressMonitorFactory.CreateProgressMonitor(progressMessage.Status);

            eventMonitor = new PackageUpdatesEventMonitor(progressMonitor, packageEvents);
        }
		void Update (UpdateAllPackagesInSolution updateAllPackages, ProgressMonitorStatusMessage progressMessage)
		{
			try {
				List<UpdatePackageAction> updateActions = updateAllPackages.CreateActions ().ToList ();
				PackageManagementServices.BackgroundPackageActionRunner.Run (progressMessage, updateActions);
			} catch (Exception ex) {
				PackageManagementServices.BackgroundPackageActionRunner.ShowError (progressMessage, ex);
			}
		}
        public static ProgressMonitorStatusMessage CreateUpdatingPackagesInSolutionMessage(IEnumerable <IDotNetProject> projects)
        {
            ProgressMonitorStatusMessage message = CreateUpdatingPackagesInSolutionMessage();

            return(new UpdatePackagesProgressMonitorStatusMessage(
                       projects,
                       GettextCatalog.GetString("Packages are up to date."),
                       GettextCatalog.GetString("No updates found but warnings were reported."),
                       message));
        }
        public static ProgressMonitorStatusMessage CreateUpdatingSinglePackageMessage(string packageId, IDotNetProject project)
        {
            ProgressMonitorStatusMessage message = CreateUpdatingSinglePackageMessage(packageId);

            return(new UpdatePackagesProgressMonitorStatusMessage(
                       project,
                       GettextCatalog.GetString("{0} is up to date.", packageId),
                       GettextCatalog.GetString("No update found but warnings were reported."),
                       message));
        }
 void TryRunActionsWithProgressMonitor(ProgressMonitorStatusMessage progressMessage, IList <IPackageAction> actions)
 {
     try {
         RunActionsWithProgressMonitor(progressMessage, actions);
     } catch (Exception ex) {
         LoggingService.LogInternalError(ex);
     } finally {
         GuiDispatch(() => runCount--);
     }
 }
        public static ProgressMonitorStatusMessage CreateUpdatingPackagesInProjectMessage(int count, IPackageManagementProject project)
        {
            ProgressMonitorStatusMessage message = CreateUpdatingPackagesInProjectMessage(count);

            return(new UpdatePackagesProgressMonitorStatusMessage(
                       project,
                       GetString("Packages are up to date."),
                       GetString("No updates found but warnings were reported."),
                       message));
        }
Exemplo n.º 20
0
        public static ProgressMonitorStatusMessage CreateUpdatingSinglePackageMessage(string packageId, IPackageManagementProject project)
        {
            ProgressMonitorStatusMessage message = CreateUpdatingSinglePackageMessage(packageId);

            return(new UpdatePackagesProgressMonitorStatusMessage(
                       project,
                       GetString("{0} is up to date.", packageId),
                       GetString("No update found but warnings were reported. Please see Package Console for details."),
                       message));
        }
Exemplo n.º 21
0
        public static ProgressMonitorStatusMessage CreateUpdatingPackagesInSolutionMessage(IEnumerable <IPackageManagementProject> projects)
        {
            ProgressMonitorStatusMessage message = CreateUpdatingPackagesInSolutionMessage();

            return(new UpdatePackagesProgressMonitorStatusMessage(
                       projects,
                       GetString("Packages are up to date."),
                       GetString("No updates found but warnings were reported. Please see Package Console for details."),
                       message));
        }
        public Task UninstallPackagesAsync(
            Project project,
            IEnumerable <string> packages,
            bool removeDependencies = false)
        {
            var actions = CreateUninstallActions(project, packages, removeDependencies).ToList();
            ProgressMonitorStatusMessage progressMessage = GetUninstallingStatusMessages(actions);

            return(backgroundActionRunner.RunAsync(progressMessage, actions));
        }
Exemplo n.º 23
0
		public void Restore (ProgressMonitorStatusMessage progressMessage)
		{
			try {
				if (AnyMissingPackages ()) {
					RestoreWithProgressMonitor (progressMessage);
				}
			} catch (Exception ex) {
				LoggingService.LogInternalError (ex);
				RestoreFailed = true;
			}
		}
Exemplo n.º 24
0
 public UpdatePackagesProgressMonitorStatusMessage(
     IEnumerable <IDotNetProject> projects,
     string packagesUpToDateMessage,
     string packagesUpToDateWarningMessage,
     ProgressMonitorStatusMessage message)
     : base(message.Status, message.Success, message.Error, message.Warning)
 {
     this.packagesUpToDateMessage        = packagesUpToDateMessage;
     this.packagesUpToDateWarningMessage = packagesUpToDateWarningMessage;
     monitor = new UpdatedPackagesMonitor(projects);
 }
 void OnPackageRestoreCompleted(
     IAsyncOperation operation,
     IProgressMonitor progressMonitor,
     ProgressMonitorStatusMessage progressMessage)
 {
     if (operation.Success)
     {
         RefreshProjectReferences();
     }
     ReportOutcome(operation, progressMonitor, progressMessage);
 }
 public void ReportResult(ProgressMonitorStatusMessage progressMessage)
 {
     if (HasWarnings)
     {
         progressMonitor.ReportWarning(progressMessage.Warning);
     }
     else
     {
         progressMonitor.ReportSuccess(progressMessage.Success);
     }
 }
Exemplo n.º 27
0
        void InstallPackages(
            IEnumerable <SourceRepository> repositories,
            Project project,
            IEnumerable <PackageManagementPackageReference> packages,
            bool licensesAccepted)
        {
            var actions = CreateInstallActions(repositories, project, packages, licensesAccepted).ToList();
            ProgressMonitorStatusMessage progressMessage = GetProgressMonitorStatusMessages(actions);

            backgroundActionRunner.Run(progressMessage, actions);
        }
		public UpdatePackagesProgressMonitorStatusMessage (
			IEnumerable<IPackageManagementProject> projects,
			string packagesUpToDateMessage,
			string packagesUpToDateWarningMessage,
			ProgressMonitorStatusMessage message)
			: base (message.Status, message.Success, message.Error, message.Warning)
		{
			this.packagesUpToDateMessage = packagesUpToDateMessage;
			this.packagesUpToDateWarningMessage = packagesUpToDateWarningMessage;
			monitor = new UpdatedPackagesMonitor (projects);
		}
Exemplo n.º 29
0
        void InstallPackages(List <IPackageAction> packageActions)
        {
            if (packageActions.Count > 0)
            {
                ProgressMonitorStatusMessage progressMessage = GetProgressMonitorStatusMessages(packageActions);
                backgroundActionRunner.Run(progressMessage, packageActions);

                viewModel.OnInstallingSelectedPackages();
                Close();
            }
        }
        /// <summary>
        /// Installs NuGet packages into the selected project using the enabled package sources.
        /// </summary>
        /// <param name="project">Project.</param>
        /// <param name="packages">Packages.</param>
        public Task InstallPackagesAsync(Project project, IEnumerable <PackageManagementPackageReference> packages)
        {
            var repositoryProvider = SourceRepositoryProviderFactory.CreateSourceRepositoryProvider();
            var repositories       = repositoryProvider.GetRepositories().ToList();

            var actions = CreateInstallActions(repositories, project, packages, licensesAccepted: false).ToList();

            ProgressMonitorStatusMessage progressMessage = GetInstallingStatusMessages(actions);

            return(backgroundActionRunner.RunAsync(progressMessage, actions));
        }
        void InstallPackages(List <IPackageAction> packageActions)
        {
            if (packageActions.Count > 0)
            {
                AddRecentPackages(packageActions);

                ProgressMonitorStatusMessage progressMessage = GetProgressMonitorStatusMessages(packageActions);
                backgroundActionRunner.Run(progressMessage, packageActions);
                Close();
            }
        }
Exemplo n.º 32
0
 public void Restore(ProgressMonitorStatusMessage progressMessage)
 {
     try {
         if (AnyMissingPackages())
         {
             RestoreWithProgressMonitor(progressMessage);
         }
     } catch (Exception ex) {
         LoggingService.LogError("Package restore failed", ex);
         RestoreFailed = true;
     }
 }
Exemplo n.º 33
0
        void Restore(PackageRestorer restorer, Action afterRestore)
        {
            ProgressMonitorStatusMessage progressMessage = ProgressMonitorStatusMessageFactory.CreateRestoringPackagesBeforeUpdateMessage();

            PackageManagementBackgroundDispatcher.Dispatch(() => {
                restorer.Restore(progressMessage);
                if (!restorer.RestoreFailed)
                {
                    afterRestore();
                }
            });
        }
		void RemovePackage (PackageReferenceNode packageReferenceNode, ProgressMonitorStatusMessage progressMessage)
		{
			IPackageManagementProject project = PackageManagementServices.Solution.GetActiveProject ();
			UninstallPackageAction action = project.CreateUninstallPackageAction ();
			action.Package = project.FindPackage (packageReferenceNode.Id);

			if (action.Package != null) {
				PackageManagementServices.BackgroundPackageActionRunner.Run (progressMessage, action);
			} else {
				ShowMissingPackageError (progressMessage, packageReferenceNode);
			}
		}
Exemplo n.º 35
0
 void OnPackageRestoreCompleted(
     IAsyncOperation operation,
     IProgressMonitor progressMonitor,
     ProgressMonitorStatusMessage progressMessage)
 {
     if (operation.Success)
     {
         RefreshProjectReferences();
         ForceCreationOfSharedRepositoriesConfigFile();
     }
     ReportOutcome(operation, progressMonitor, progressMessage);
 }
		public UpdatePackagesProgressMonitorStatusMessage (
			IPackageManagementProject project,
			string packagesUpToDateMessage,
			string packagesUpToDateWarningMessage,
			ProgressMonitorStatusMessage message)
			: this (
				new IPackageManagementProject [] { project },
				packagesUpToDateMessage,
				packagesUpToDateWarningMessage,
				message)
		{
		}
Exemplo n.º 37
0
 public UpdatePackagesProgressMonitorStatusMessage(
     IDotNetProject project,
     string packagesUpToDateMessage,
     string packagesUpToDateWarningMessage,
     ProgressMonitorStatusMessage message)
     : this(
         new IDotNetProject [] { project },
         packagesUpToDateMessage,
         packagesUpToDateWarningMessage,
         message)
 {
 }
Exemplo n.º 38
0
        public void ReportError(ProgressMonitorStatusMessage progressMessage, Exception ex)
        {
            LoggingService.LogError(progressMessage.Error, ex);
            progressMonitor.Log.WriteLine(GetErrorMessageForPackageConsole(ex));
            progressMonitor.ReportError(progressMessage.Error, null);
            ShowPackageConsole(progressMonitor);
            packageManagementEvents.OnPackageOperationError(ex);

            if (taskCompletionSource != null)
            {
                taskCompletionSource.TrySetException(ExceptionUtility.Unwrap(ex));
            }
        }
		void RunInternal (IProgressMonitor progressMonitor, ProgressMonitorStatusMessage progressMessage)
		{
			var commandLine = new MonoPclCommandLine () {
				List = true
			};
			commandLine.BuildCommandLine ();

			progressMonitor.ShowPackageConsole ();
			progressMonitor.Log.WriteLine (commandLine.ToString ());
			progressMonitor.Log.WriteLine ();

			RunMonoPcl (progressMonitor, progressMessage, commandLine);
		}
Exemplo n.º 40
0
        public void Run(PackageReferenceNode packageReferenceNode, ProgressMonitorStatusMessage progressMessage)
        {
            try {
                IPackageManagementProject project = solution.GetProject(packageReferenceNode.Project);
                ReinstallPackageAction    action  = project.CreateReinstallPackageAction();
                action.PackageId      = packageReferenceNode.Id;
                action.PackageVersion = packageReferenceNode.Version;

                runner.Run(progressMessage, action);
            } catch (Exception ex) {
                runner.ShowError(progressMessage, ex);
            }
        }
		public void Run (PackageReferenceNode packageReferenceNode, ProgressMonitorStatusMessage progressMessage)
		{
			try {
				IPackageManagementProject project = solution.GetActiveProject ();
				ReinstallPackageAction action = project.CreateReinstallPackageAction ();
				action.PackageId = packageReferenceNode.Id;
				action.PackageVersion = packageReferenceNode.Version;

				runner.Run (progressMessage, action);
			} catch (Exception ex) {
				runner.ShowError (progressMessage, ex);
			}
		}
 public void Run(InstallPackageCommand command)
 {
     try {
         IPackageManagementProject project = PackageManagementServices.Solution.GetActiveProject();
         var action = new InstallPackageAction(project, PackageManagementServices.PackageManagementEvents);
         action.PackageId      = command.PackageId;
         action.PackageVersion = command.GetVersion();
         ProgressMonitorStatusMessage progressMessage = CreateProgressMessage(action.PackageId);
         PackageManagementServices.BackgroundPackageActionRunner.Run(progressMessage, action);
     } catch (Exception ex) {
         ShowStatusBarError(ex);
     }
 }
		void CheckForPackageUpdates (
			ProgressMonitor progressMonitor,
			ProgressMonitorStatusMessage progressMessage,
			PackageUpdatesEventMonitor eventMonitor)
		{
			updatedPackagesInSolution.CheckForUpdates ();
			if (updatedPackagesInSolution.AnyUpdates ()) {
				progressMonitor.ReportSuccess (GettextCatalog.GetString ("Package updates are available."));
			} else if (eventMonitor.WarningReported) {
				progressMonitor.ReportWarning (progressMessage.Warning);
			} else {
				progressMonitor.ReportSuccess (progressMessage.Success);
			}
		}
		void RunInternal ()
		{
			progressMessage = CreateCheckingPackageCompatibilityMessage ();

			using (progressMonitor = CreateProgressMonitor ()) {
				using (PackageManagementEventsMonitor eventMonitor = CreateEventMonitor (progressMonitor)) {
					try {
						CheckCompatibility ();
					} catch (Exception ex) {
						eventMonitor.ReportError (progressMessage, ex);
					}
				}
			}
		}
Exemplo n.º 45
0
		public void Run (ProgressMonitorStatusMessage progressMessage)
		{
			IProgressMonitor progressMonitor = CreateProgressMonitor (progressMessage);

			try {
				RestorePackages(progressMonitor, progressMessage);
			} catch (Exception ex) {
				LoggingService.LogInternalError (ex);
				progressMonitor.Log.WriteLine(ex.Message);
				progressMonitor.ReportError (progressMessage.Error, null);
				progressMonitor.ShowPackageConsole ();
				progressMonitor.Dispose();
				RestoreFailed = true;
			}
		}
Exemplo n.º 46
0
		public void Run (PackageReferenceNode packageReferenceNode, ProgressMonitorStatusMessage progressMessage)
		{
			try {
				var solutionManager = PackageManagementServices.Workspace.GetSolutionManager (packageReferenceNode.Project.ParentSolution);

				var action = new ReinstallNuGetPackageAction (
					packageReferenceNode.Project,
					solutionManager);
				action.PackageId = packageReferenceNode.Id;
				action.Version = packageReferenceNode.Version;

				runner.Run (progressMessage, action);
			} catch (Exception ex) {
				runner.ShowError (progressMessage, ex);
			}
		}
		public void Run (ProgressMonitorStatusMessage progressMessage)
		{
			using (ProgressMonitor progressMonitor = CreateProgressMonitor (progressMessage)) {
				using (PackageManagementEventsMonitor eventMonitor = CreateEventMonitor (progressMonitor)) {
					try {
						RestorePackages (progressMonitor, progressMessage);
					} catch (Exception ex) {
						LoggingService.LogError (progressMessage.Error, ex);
						progressMonitor.Log.WriteLine (ex.Message);
						progressMonitor.ReportError (progressMessage.Error, null);
						progressMonitor.ShowPackageConsole ();
						progressMonitor.Dispose ();
						RestoreFailed = true;
					}
				}
			}
		}
		void CreateRunner ()
		{
			actions = new List<IPackageAction> ();
			progressMessage = new ProgressMonitorStatusMessage ("Status", "Success", "Error", "Warning");
			packageManagementEvents = new PackageManagementEvents ();
			progressMonitorFactory = new FakeProgressMonitorFactory ();
			progressMonitor = progressMonitorFactory.ProgressMonitor;
			repositoryFactoryEvents = new FakePackageRepositoryFactoryEvents ();
			progressProvider = new PackageManagementProgressProvider (repositoryFactoryEvents, handler => {
				handler.Invoke ();
			});

			runner = new TestableBackgroundPackageActionRunner (
				progressMonitorFactory,
				packageManagementEvents,
				progressProvider);
		}
		void RunActionsWithProgressMonitor (ProgressMonitorStatusMessage progressMessage, IList<IPackageAction> installPackageActions)
		{
			using (IProgressMonitor monitor = progressMonitorFactory.CreateProgressMonitor (progressMessage.Status)) {
				using (PackageManagementEventsMonitor eventMonitor = CreateEventMonitor (monitor)) {
					try {
						monitor.BeginTask (null, installPackageActions.Count);
						RunActionsWithProgressMonitor (monitor, installPackageActions);
						eventMonitor.ReportResult (progressMessage);
					} catch (Exception ex) {
						RemoveInstallActions (installPackageActions);
						eventMonitor.ReportError (progressMessage, ex);
					} finally {
						monitor.EndTask ();
						GuiDispatch (() => {
							RemoveInstallActions (installPackageActions);
							packageManagementEvents.OnPackageOperationsFinished ();
						});
					}
				}
			}
		}
		public void ReportResult (ProgressMonitorStatusMessage progressMessage)
		{
			if (HasWarnings) {
				progressMonitor.ReportWarning (progressMessage.Warning);
			} else {
				progressMonitor.ReportSuccess (progressMessage.Success);
			}
		}
		void ShowMissingPackageError (ProgressMonitorStatusMessage progressMessage, PackageReferenceNode packageReferenceNode)
		{
			string message = GettextCatalog.GetString ("Unable to find package {0} {1} to remove it from the project. Please restore the package first.", packageReferenceNode.Id, packageReferenceNode.Version);
			PackageManagementServices.BackgroundPackageActionRunner.ShowError (progressMessage, message);
		}
		void UpdatePackage (ProgressMonitorStatusMessage progressMessage, UpdatePackageAction action)
		{
			try {
				PackageManagementServices.BackgroundPackageActionRunner.Run (progressMessage, action);
			} catch (Exception ex) {
				PackageManagementServices.BackgroundPackageActionRunner.ShowError (progressMessage, ex);
			}
		}
		public void ShowError (ProgressMonitorStatusMessage progressMessage, Exception exception)
		{
			LoggingService.LogError (progressMessage.Error, exception);
			ShowError (progressMessage, exception.Message);
		}
		public void ShowError (ProgressMonitorStatusMessage progressMessage, string error)
		{
			using (ProgressMonitor monitor = progressMonitorFactory.CreateProgressMonitor (progressMessage.Status)) {
				monitor.Log.WriteLine (error);
				monitor.ReportError (progressMessage.Error, null);
				monitor.ShowPackageConsole ();
			}
		}
		ProgressMonitor CreateProgressMonitor (ProgressMonitorStatusMessage progressMessage)
		{
			return progressMonitorFactory.CreateProgressMonitor (progressMessage.Status);
		}
		public void Run (IDotNetProject project, ProgressMonitorStatusMessage progressMessage)
		{
			this.project = project;
			Run (progressMessage);
		}
		void RestorePackages (ProgressMonitor progressMonitor, ProgressMonitorStatusMessage progressMessage)
		{
			var msbuildTargetsMonitor = new MSBuildTargetsRestoredMonitor (packageManagementEvents);
			using (msbuildTargetsMonitor) {
				var action = new RestorePackagesAction (solution, packageManagementEvents);
				if (project != null) {
					action.Project = project;
				}
				action.Execute ();
			}

			RefreshProjectReferences (msbuildTargetsMonitor.AnyMSBuildTargetsRestored);
			ForceCreationOfSharedRepositoriesConfigFile ();

			progressMonitor.ReportSuccess (progressMessage.Success);
			packageManagementEvents.OnPackagesRestored ();
		}
		public void Run (ProgressMonitorStatusMessage progressMessage, IPackageAction action)
		{
			Run (progressMessage, new IPackageAction [] { action });
		}
		void TryRunActionsWithProgressMonitor (ProgressMonitorStatusMessage progressMessage, IList<IPackageAction> actions)
		{
			try {
				RunActionsWithProgressMonitor (progressMessage, actions);
			} catch (Exception ex) {
				LoggingService.LogInternalError (ex);
			} finally {
				GuiDispatch (() => runCount--);
			}
		}
		public void ReportError (ProgressMonitorStatusMessage progressMessage, Exception ex)
		{
			LoggingService.LogError (progressMessage.Error, ex);
			progressMonitor.Log.WriteLine (ex.Message);
			progressMonitor.ReportError (progressMessage.Error, null);
			ShowPackageConsole (progressMonitor);
			packageManagementEvents.OnPackageOperationError (ex);
		}