Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit e8ef120

Browse files
author
Dragan
committed
PM: Refactoring & test bug found/fixed
1 parent 7c203b4 commit e8ef120

2 files changed

Lines changed: 28 additions & 26 deletions

File tree

src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -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
{

src/AddIns/Misc/PackageManagement/Test/Src/PackageViewModelTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1316,7 +1316,7 @@ public void ManagePackagesForSelectedProjects_TwoProjectsOneSelectedAndPackageRe
13161316
CreateTwoFakeSelectedProjects();
13171317
FirstFakeSelectedProject.IsSelected = true;
13181318
AddFakeInstallPackageOperationWithPackageThatRequiresLicenseAcceptance(FirstFakeSelectedProject);
1319-
fakePackageManagementEvents.OnAcceptLicensesReturnValue = false;
1319+
fakePackageManagementEvents.OnAcceptLicensesReturnValue = true;
13201320

13211321
viewModel.ManagePackagesForSelectedProjects(fakeSelectedProjects);
13221322

0 commit comments

Comments
 (0)