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

Commit 510d41b

Browse files
author
Dragan
committed
PM: Solution-Package Update
1 parent d8cfa43 commit 510d41b

2 files changed

Lines changed: 66 additions & 20 deletions

File tree

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

Lines changed: 64 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -280,20 +280,6 @@ where project.IsSelected
280280
}
281281
}
282282

283-
void SolutionPackageGetInstallOperations(
284-
ISolutionPackageRepository solutionRepository,
285-
InstallPackageAction installAction,
286-
IPackageFromRepository installPackage) {
287-
288-
var resolverFactory = new PackageOperationsResolverFactory();
289-
var resolver = resolverFactory.CreateInstallPackageOperationResolver(
290-
solutionRepository.Repository,
291-
installPackage.Repository,
292-
logger,
293-
installAction);
294-
packageOperations = resolver.ResolveOperations(installPackage);
295-
}
296-
297283
IPackageManagementProject GetSingleProjectSelected()
298284
{
299285
return selectedProjects.GetSingleProjectSelected(package.Repository);
@@ -350,6 +336,20 @@ protected virtual void TrySolutionPackageInstall()
350336
}
351337
}
352338

339+
void SolutionPackageGetInstallOperations(
340+
ISolutionPackageRepository solutionRepository,
341+
InstallPackageAction installAction,
342+
IPackageFromRepository installPackage) {
343+
344+
var resolverFactory = new PackageOperationsResolverFactory();
345+
var resolver = resolverFactory.CreateInstallPackageOperationResolver(
346+
solutionRepository.Repository,
347+
installPackage.Repository,
348+
logger,
349+
installAction);
350+
packageOperations = resolver.ResolveOperations(installPackage);
351+
}
352+
353353
void SolutionPackageInstall(
354354
ISolutionPackageRepository solutionRepository,
355355
InstallPackageAction installAction,
@@ -366,6 +366,56 @@ void SolutionPackageInstall(
366366
installAction.AllowPrereleaseVersions);
367367
}
368368

369+
protected virtual void TrySolutionPackageUpdate()
370+
{
371+
try {
372+
var solutionRepository = selectedProjects.Solution.CreateSolutionPackageRepository();
373+
var updateAction = new UpdatePackageAction(null, packageManagementEvents);
374+
updateAction.Package = package;
375+
updateAction.AllowPrereleaseVersions = parent.IncludePrerelease;
376+
SolutionPackageGetUpdateOperations(solutionRepository, updateAction, package);
377+
if (LicensesAccepted()) {
378+
SolutionPackageUpdate(solutionRepository, updateAction, package);
379+
IEnumerable<IPackage> updatedPackages = (
380+
from packageOperation in packageOperations
381+
where packageOperation.Package != null
382+
select packageOperation.Package).Distinct();
383+
packageManagementEvents.OnParentPackagesUpdated(updatedPackages);
384+
}
385+
} catch (Exception ex) {
386+
ReportError(ex);
387+
logger.LogError(ex);
388+
}
389+
}
390+
391+
void SolutionPackageGetUpdateOperations(
392+
ISolutionPackageRepository solutionRepository,
393+
UpdatePackageAction updateAction,
394+
IPackageFromRepository updatePackage) {
395+
396+
var resolverFactory = new PackageOperationsResolverFactory();
397+
var resolver = resolverFactory.CreateUpdatePackageOperationResolver(
398+
solutionRepository.Repository,
399+
updatePackage.Repository,
400+
logger,
401+
updateAction);
402+
packageOperations = resolver.ResolveOperations(updatePackage);
403+
}
404+
405+
void SolutionPackageUpdate(
406+
ISolutionPackageRepository solutionRepository,
407+
UpdatePackageAction installAction,
408+
IPackageFromRepository updatePackage) {
409+
var packageManager = new PackageManager(
410+
updatePackage.Repository,
411+
solutionRepository.PackagePathResolver,
412+
solutionRepository.FileSystem,
413+
solutionRepository.Repository);
414+
packageManager.UpdatePackage(
415+
updatePackage.Id, true,
416+
installAction.AllowPrereleaseVersions);
417+
}
418+
369419
void TryProjectPackageInstall()
370420
{
371421
try {

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,8 @@ public UpdatedPackageViewModel(
4444
SelectedProjectsForUpdatedPackages selectedProjects;
4545

4646
protected override void TrySolutionPackageInstall()
47-
{
48-
var repository = selectedProjects.Solution.CreateSolutionPackageRepository();
49-
foreach (var packageToUpdate in repository.Repository.FindPackagesById(this.Id)) {
50-
TrySolutionPackageUninstall(packageToUpdate);
51-
}
52-
base.TrySolutionPackageInstall();
47+
{ // Modify PackageViewModel logic
48+
base.TrySolutionPackageUpdate();
5349
}
5450

5551
protected override ProcessPackageAction CreatePackageManageAction(IPackageManagementSelectedProject selectedProject)

0 commit comments

Comments
 (0)