1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
5
using System.Collections.Generic;
7
using ICSharpCode.PackageManagement.Scripting;
10
namespace ICSharpCode.PackageManagement
12
public class UpdatePackageInAllProjects : IUpdatePackageActions
14
IPackageManagementSolution solution;
15
IPackageRepository sourceRepository;
16
List<IPackageManagementProject> projects;
17
PackageReference packageReference;
19
public UpdatePackageInAllProjects(
20
PackageReference packageReference,
21
IPackageManagementSolution solution,
22
IPackageRepository sourceRepository)
24
this.packageReference = packageReference;
25
this.solution = solution;
26
this.sourceRepository = sourceRepository;
29
public bool UpdateDependencies { get; set; }
30
public IPackageScriptRunner PackageScriptRunner { get; set; }
32
public IEnumerable<UpdatePackageAction> CreateActions()
35
foreach (IPackageManagementProject project in projects) {
36
yield return CreateUpdatePackageAction(project);
42
projects = new List<IPackageManagementProject>();
43
projects.AddRange(solution.GetProjects(sourceRepository));
46
UpdatePackageAction CreateUpdatePackageAction(IPackageManagementProject project)
48
UpdatePackageAction action = project.CreateUpdatePackageAction();
49
SetUpdatePackageActionProperties(action);
53
void SetUpdatePackageActionProperties(UpdatePackageAction action)
55
action.PackageId = packageReference.Id;
56
action.PackageScriptRunner = PackageScriptRunner;
57
action.PackageVersion = packageReference.Version;
58
action.UpdateDependencies = UpdateDependencies;
59
action.UpdateIfPackageDoesNotExistInProject = false;