@@ -127,7 +127,7 @@ public bool IsAdded {
127127
128128 protected bool IsPackageInstalled ( )
129129 {
130- return IsPackageInstalledInSolution ( package ) ;
130+ return IsPackageInstalled ( package ) ;
131131 }
132132
133133 public IEnumerable < PackageDependencySet > Dependencies {
@@ -262,6 +262,21 @@ void GetInstallPackageOperations()
262262 packageOperations = project . GetInstallPackageOperations ( package , installAction ) ;
263263 }
264264
265+ IEnumerable < PackageOperation > GetInstallPackageOperations ( IEnumerable < IPackageManagementSelectedProject > projects ) {
266+ IEnumerable < PackageOperation > installPackageOperations = new PackageOperation [ 0 ] ;
267+ IPackageManagementSelectedProject firstSelectedProject = (
268+ from project in projects
269+ where project . IsSelected
270+ select project ) . FirstOrDefault ( ) ;
271+
272+ if ( firstSelectedProject != null ) {
273+ InstallPackageAction installAction = firstSelectedProject . Project . CreateInstallPackageAction ( ) ;
274+ installAction . AllowPrereleaseVersions = parent . IncludePrerelease ;
275+ installPackageOperations = firstSelectedProject . Project . GetInstallPackageOperations ( package , installAction ) ;
276+ }
277+ return installPackageOperations ;
278+ }
279+
265280 IPackageManagementProject GetSingleProjectSelected ( )
266281 {
267282 return selectedProjects . GetSingleProjectSelected ( package . Repository ) ;
@@ -291,10 +306,10 @@ IList<IPackage> GetPackagesToBeInstalled()
291306
292307 bool PackageRequiresLicenseAcceptance ( IPackage package )
293308 {
294- return package . RequireLicenseAcceptance && ! IsPackageInstalledInSolution ( package ) ;
309+ return package . RequireLicenseAcceptance && ! IsPackageInstalled ( package ) ;
295310 }
296311
297- bool IsPackageInstalledInSolution ( IPackage package )
312+ bool IsPackageInstalled ( IPackage package )
298313 {
299314 return selectedProjects . Solution . IsPackageInstalled ( package ) ;
300315 }
@@ -468,11 +483,6 @@ List<IPackageManagementSelectedProject> GetSelectedProjectsForPackage()
468483 }
469484
470485 public void ManagePackagesForSelectedProjects ( IEnumerable < IPackageManagementSelectedProject > projects )
471- {
472- ManagePackagesForSelectedProjects ( projects . ToList ( ) ) ;
473- }
474-
475- void ManagePackagesForSelectedProjects ( IList < IPackageManagementSelectedProject > projects )
476486 {
477487 ClearReportedMessages ( ) ;
478488 logger . LogManagingPackage ( ) ;
@@ -484,24 +494,11 @@ void ManagePackagesForSelectedProjects(IList<IPackageManagementSelectedProject>
484494 logger . LogAfterPackageOperationCompletes ( ) ;
485495 }
486496
487- void TryManagePackagesForSelectedProjects ( IList < IPackageManagementSelectedProject > projects )
497+ void TryManagePackagesForSelectedProjects ( IEnumerable < IPackageManagementSelectedProject > projects )
488498 {
489499 try {
490- packageOperations = new PackageOperation [ 0 ] ;
491- if ( ! IsPackageInstalled ( ) ) {
492- IPackageManagementSelectedProject firstSelectedProject = (
493- from project in projects
494- where project . IsSelected
495- select project ) . FirstOrDefault ( ) ;
496-
497- if ( firstSelectedProject != null ) {
498- InstallPackageAction installAction = firstSelectedProject . Project . CreateInstallPackageAction ( ) ;
499- installAction . AllowPrereleaseVersions = parent . IncludePrerelease ;
500- packageOperations = firstSelectedProject . Project . GetInstallPackageOperations ( package , installAction ) ;
501- }
502- }
503- IList < ProcessPackageAction > actions = GetProcessPackageActionsForSelectedProjects ( projects ) ;
504- if ( actions . Any ( ) && LicensesAccepted ( ) ) {
500+ if ( IsPackageInstalled ( ) || LicensesAccepted ( projects ) ) {
501+ IList < ProcessPackageAction > actions = GetProcessPackageActionsForSelectedProjects ( projects ) ;
505502 RunActionsIfAnyExist ( actions ) ;
506503 }
507504 } catch ( Exception ex ) {
@@ -516,7 +513,7 @@ protected virtual bool AnyProjectsSelected(IList<IPackageManagementSelectedProje
516513 }
517514
518515 public IList < ProcessPackageAction > GetProcessPackageActionsForSelectedProjects (
519- IList < IPackageManagementSelectedProject > selectedProjects )
516+ IEnumerable < IPackageManagementSelectedProject > selectedProjects )
520517 {
521518 var actions = new List < ProcessPackageAction > ( ) ;
522519 foreach ( IPackageManagementSelectedProject selectedProject in selectedProjects ) {
@@ -559,6 +556,11 @@ protected ProcessPackageAction CreateUpdatePackageManageActionForSelectedProject
559556 }
560557 return null ;
561558 }
559+
560+ bool LicensesAccepted ( IEnumerable < IPackageManagementSelectedProject > projects ) {
561+ packageOperations = GetInstallPackageOperations ( projects ) ;
562+ return LicensesAccepted ( ) ;
563+ }
562564
563565 bool LicensesAccepted ( )
564566 {
0 commit comments