Browse Source

PM: Solution-Package Update

pull/374/head
Dragan 11 years ago
parent
commit
510d41b86c
  1. 78
      src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs
  2. 8
      src/AddIns/Misc/PackageManagement/Project/Src/UpdatedPackageViewModel.cs

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

@ -280,20 +280,6 @@ namespace ICSharpCode.PackageManagement @@ -280,20 +280,6 @@ namespace ICSharpCode.PackageManagement
}
}
void SolutionPackageGetInstallOperations(
ISolutionPackageRepository solutionRepository,
InstallPackageAction installAction,
IPackageFromRepository installPackage) {
var resolverFactory = new PackageOperationsResolverFactory();
var resolver = resolverFactory.CreateInstallPackageOperationResolver(
solutionRepository.Repository,
installPackage.Repository,
logger,
installAction);
packageOperations = resolver.ResolveOperations(installPackage);
}
IPackageManagementProject GetSingleProjectSelected()
{
return selectedProjects.GetSingleProjectSelected(package.Repository);
@ -350,6 +336,20 @@ namespace ICSharpCode.PackageManagement @@ -350,6 +336,20 @@ namespace ICSharpCode.PackageManagement
}
}
void SolutionPackageGetInstallOperations(
ISolutionPackageRepository solutionRepository,
InstallPackageAction installAction,
IPackageFromRepository installPackage) {
var resolverFactory = new PackageOperationsResolverFactory();
var resolver = resolverFactory.CreateInstallPackageOperationResolver(
solutionRepository.Repository,
installPackage.Repository,
logger,
installAction);
packageOperations = resolver.ResolveOperations(installPackage);
}
void SolutionPackageInstall(
ISolutionPackageRepository solutionRepository,
InstallPackageAction installAction,
@ -366,6 +366,56 @@ namespace ICSharpCode.PackageManagement @@ -366,6 +366,56 @@ namespace ICSharpCode.PackageManagement
installAction.AllowPrereleaseVersions);
}
protected virtual void TrySolutionPackageUpdate()
{
try {
var solutionRepository = selectedProjects.Solution.CreateSolutionPackageRepository();
var updateAction = new UpdatePackageAction(null, packageManagementEvents);
updateAction.Package = package;
updateAction.AllowPrereleaseVersions = parent.IncludePrerelease;
SolutionPackageGetUpdateOperations(solutionRepository, updateAction, package);
if (LicensesAccepted()) {
SolutionPackageUpdate(solutionRepository, updateAction, package);
IEnumerable<IPackage> updatedPackages = (
from packageOperation in packageOperations
where packageOperation.Package != null
select packageOperation.Package).Distinct();
packageManagementEvents.OnParentPackagesUpdated(updatedPackages);
}
} catch (Exception ex) {
ReportError(ex);
logger.LogError(ex);
}
}
void SolutionPackageGetUpdateOperations(
ISolutionPackageRepository solutionRepository,
UpdatePackageAction updateAction,
IPackageFromRepository updatePackage) {
var resolverFactory = new PackageOperationsResolverFactory();
var resolver = resolverFactory.CreateUpdatePackageOperationResolver(
solutionRepository.Repository,
updatePackage.Repository,
logger,
updateAction);
packageOperations = resolver.ResolveOperations(updatePackage);
}
void SolutionPackageUpdate(
ISolutionPackageRepository solutionRepository,
UpdatePackageAction installAction,
IPackageFromRepository updatePackage) {
var packageManager = new PackageManager(
updatePackage.Repository,
solutionRepository.PackagePathResolver,
solutionRepository.FileSystem,
solutionRepository.Repository);
packageManager.UpdatePackage(
updatePackage.Id, true,
installAction.AllowPrereleaseVersions);
}
void TryProjectPackageInstall()
{
try {

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

@ -44,12 +44,8 @@ namespace ICSharpCode.PackageManagement @@ -44,12 +44,8 @@ namespace ICSharpCode.PackageManagement
SelectedProjectsForUpdatedPackages selectedProjects;
protected override void TrySolutionPackageInstall()
{
var repository = selectedProjects.Solution.CreateSolutionPackageRepository();
foreach (var packageToUpdate in repository.Repository.FindPackagesById(this.Id)) {
TrySolutionPackageUninstall(packageToUpdate);
}
base.TrySolutionPackageInstall();
{ // Modify PackageViewModel logic
base.TrySolutionPackageUpdate();
}
protected override ProcessPackageAction CreatePackageManageAction(IPackageManagementSelectedProject selectedProject)

Loading…
Cancel
Save