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

Commit 3e4a5c1

Browse files
author
gumme
committed
Merge remote-tracking branch 'upstream/master'
2 parents 70a22a7 + 6cba48a commit 3e4a5c1

45 files changed

Lines changed: 869 additions & 367 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/GetPackageCmdlet.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ UpdatedPackages CreateUpdatedPackages(IPackageRepository repository)
205205

206206
IQueryable<IPackage> GetPackagesInstalledIntoAnyProject()
207207
{
208-
return ConsoleHost.Solution.GetInstalledPackages();
208+
return ConsoleHost.Solution.GetProjectPackages();
209209
}
210210

211211
IPackageManagementProject GetSelectedProject(IPackageRepository repository)

src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@
151151
<Compile Include="Src\FileConflictViewModel.cs" />
152152
<Compile Include="Src\ICodeGenerator.cs" />
153153
<Compile Include="Src\IDocumentView.cs" />
154+
<Compile Include="Src\InstalledPackagesViewModel.cs" />
154155
<Compile Include="Src\IPackageRepositoryFactoryEvents.cs" />
155156
<Compile Include="Src\IPackageViewModelParent.cs" />
156157
<Compile Include="Src\IUpdatePackagesAction.cs" />
@@ -162,8 +163,6 @@
162163
<Compile Include="Src\IProjectBrowserUpdater.cs" />
163164
<Compile Include="Src\IFieldExtensions.cs" />
164165
<Compile Include="Src\IDocumentLoader.cs" />
165-
<Compile Include="Src\InstalledPackageViewModel.cs" />
166-
<Compile Include="Src\InstalledPackageViewModelFactory.cs" />
167166
<Compile Include="Src\IPackageManagementSelectedProject.cs" />
168167
<Compile Include="Src\ISelectProjectsService.cs" />
169168
<Compile Include="Src\ISolutionPackageRepository.cs" />
@@ -341,7 +340,6 @@
341340
<Compile Include="Src\PackageRepositoryCache.cs" />
342341
<Compile Include="Src\PackagesForSelectedPageResult.cs" />
343342
<Compile Include="Src\ILicenseAcceptanceService.cs" />
344-
<Compile Include="Src\InstalledPackagesViewModel.cs" />
345343
<Compile Include="Src\IPackageManagementFileService.cs" />
346344
<Compile Include="Src\IPackageManagementProjectService.cs" />
347345
<Compile Include="Src\IPackageManagementSolution.cs" />

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

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,38 +26,62 @@ namespace ICSharpCode.PackageManagement
2626
{
2727
public class AvailablePackagesViewModel : PackagesViewModel
2828
{
29-
IPackageRepository repository;
30-
string errorMessage;
29+
IPackageRepository availablePackagesRepository;
3130

3231
public AvailablePackagesViewModel(
32+
IPackageManagementSolution solution,
33+
IPackageManagementEvents packageManagementEvents,
3334
IRegisteredPackageRepositories registeredPackageRepositories,
3435
IPackageViewModelFactory packageViewModelFactory,
3536
ITaskFactory taskFactory)
36-
: base(registeredPackageRepositories, packageViewModelFactory, taskFactory)
37+
: base(
38+
solution,
39+
packageManagementEvents,
40+
registeredPackageRepositories,
41+
packageViewModelFactory,
42+
taskFactory)
3743
{
3844
IsSearchable = true;
3945
ShowPackageSources = true;
4046
ShowPrerelease = true;
47+
48+
this.packageManagementEvents = packageManagementEvents;
49+
RegisterEvents();
50+
}
51+
52+
void RegisterEvents()
53+
{
54+
packageManagementEvents.ParentPackageInstalled += OnPackageChanged;
55+
packageManagementEvents.ParentPackageUninstalled += OnPackageChanged;
56+
packageManagementEvents.ParentPackagesUpdated += OnPackageChanged;
57+
}
58+
59+
protected override void OnDispose()
60+
{
61+
packageManagementEvents.ParentPackageInstalled -= OnPackageChanged;
62+
packageManagementEvents.ParentPackageUninstalled -= OnPackageChanged;
63+
packageManagementEvents.ParentPackagesUpdated -= OnPackageChanged;
4164
}
4265

4366
protected override void UpdateRepositoryBeforeReadPackagesTaskStarts()
4467
{
4568
try {
46-
repository = RegisteredPackageRepositories.ActiveRepository;
69+
availablePackagesRepository = RegisteredPackageRepositories.ActiveRepository;
4770
} catch (Exception ex) {
4871
errorMessage = ex.Message;
4972
}
5073
}
5174

5275
protected override IQueryable<IPackage> GetAllPackages()
5376
{
54-
if (repository == null) {
77+
if (availablePackagesRepository == null) {
5578
throw new ApplicationException(errorMessage);
5679
}
80+
5781
if (IncludePrerelease) {
58-
return repository.GetPackages();
82+
return availablePackagesRepository.GetPackages();
5983
}
60-
return repository.GetPackages().Where(package => package.IsLatestVersion);
84+
return availablePackagesRepository.GetPackages().Where(package => package.IsLatestVersion);
6185
}
6286

6387
/// <summary>
@@ -78,5 +102,6 @@ protected override IEnumerable<IPackage> GetFilteredPackagesBeforePagingResults(
78102
.Where(package => package.IsReleaseVersion())
79103
.DistinctLast<IPackage>(PackageEqualityComparer.Id);
80104
}
105+
81106
}
82107
}

src/AddIns/Misc/PackageManagement/Project/Src/Design/DesignTimePackagesViewModel.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,19 @@ namespace ICSharpCode.PackageManagement.Design
2626
public class DesignTimePackagesViewModel : PackagesViewModel
2727
{
2828
public DesignTimePackagesViewModel()
29-
: this(new DesignTimeRegisteredPackageRepositories(), new FakePackageManagementSolution())
29+
: this(new DesignTimeRegisteredPackageRepositories(), new FakePackageManagementSolution(), new PackageManagementEvents())
3030
{
3131
}
3232

3333
public DesignTimePackagesViewModel(
3434
DesignTimeRegisteredPackageRepositories registeredPackageRepositories,
35-
FakePackageManagementSolution solution)
35+
FakePackageManagementSolution solution,
36+
PackageManagementEvents packageManagementEvents)
3637
: base(
38+
solution,
39+
packageManagementEvents,
3740
registeredPackageRepositories,
38-
new PackageViewModelFactory(solution, null, null),
41+
new PackageViewModelFactory(solution, packageManagementEvents, null),
3942
new PackageManagementTaskFactory())
4043
{
4144
PageSize = 3;

src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementSolution.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,11 @@ public bool IsPackageInstalled(IPackage package)
128128
return FakeInstalledPackages.Contains(package);
129129
}
130130

131+
public ISolutionPackageRepository CreateSolutionPackageRepository()
132+
{
133+
return null;
134+
}
135+
131136
public IQueryable<IPackage> GetPackages()
132137
{
133138
var allPackages = new List<FakePackage>();
@@ -196,7 +201,12 @@ public string GetInstallPath(IPackage package)
196201
throw new NotImplementedException();
197202
}
198203

199-
public IQueryable<IPackage> GetInstalledPackages()
204+
public IQueryable<IPackage> GetSolutionPackages()
205+
{
206+
throw new NotImplementedException();
207+
}
208+
209+
public IQueryable<IPackage> GetProjectPackages()
200210
{
201211
return FakeInstalledPackages.AsQueryable();
202212
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,10 @@ public static string GetName(this IPackage package)
4242
return package.Id;
4343
return package.Title;
4444
}
45+
46+
public static bool IsProjectPackage(this IPackage package)
47+
{
48+
return package.HasProjectContent();
49+
}
4550
}
4651
}

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

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,29 @@ public interface IPackageManagementSolution
3737
IProject GetActiveMSBuildProject();
3838
IEnumerable<IProject> GetMSBuildProjects();
3939
bool HasMultipleProjects();
40-
bool IsPackageInstalled(IPackage package);
41-
IQueryable<IPackage> GetPackages();
4240
IEnumerable<IPackage> GetPackagesInReverseDependencyOrder();
4341
string GetInstallPath(IPackage package);
42+
ISolutionPackageRepository CreateSolutionPackageRepository();
4443

4544
/// <summary>
46-
/// Returns all packages that are installed into solution or a project.
47-
/// GetPackages() will return any packages in the packages folder even if
48-
/// they are not installed.
45+
/// Returns true if package is installed in the solution or a project.
46+
/// </summary>
47+
bool IsPackageInstalled(IPackage package);
48+
49+
/// <summary>
50+
/// Returns installed all packages in the packages folder.
51+
/// </summary>
52+
IQueryable<IPackage> GetPackages();
53+
54+
/// <summary>
55+
/// Returns packages installed in any project.
56+
/// </summary>
57+
IQueryable<IPackage> GetProjectPackages();
58+
59+
/// <summary>
60+
/// Returns installed solution level packages.
4961
/// </summary>
50-
IQueryable<IPackage> GetInstalledPackages();
62+
IQueryable<IPackage> GetSolutionPackages();
5163

5264
bool IsOpen { get; }
5365
string FileName { get; }

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

Lines changed: 0 additions & 79 deletions
This file was deleted.

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

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,20 @@ namespace ICSharpCode.PackageManagement
2525
{
2626
public class InstalledPackagesViewModel : PackagesViewModel
2727
{
28-
IPackageManagementSolution solution;
29-
IPackageManagementEvents packageManagementEvents;
30-
IPackageManagementProject project;
31-
string errorMessage;
32-
3328
public InstalledPackagesViewModel(
3429
IPackageManagementSolution solution,
3530
IPackageManagementEvents packageManagementEvents,
3631
IRegisteredPackageRepositories registeredPackageRepositories,
37-
InstalledPackageViewModelFactory packageViewModelFactory,
32+
IPackageViewModelFactory packageViewModelFactory,
3833
ITaskFactory taskFactory)
39-
: base(registeredPackageRepositories, packageViewModelFactory, taskFactory)
34+
: base(
35+
solution,
36+
packageManagementEvents,
37+
registeredPackageRepositories,
38+
packageViewModelFactory,
39+
taskFactory)
4040
{
41-
this.solution = solution;
42-
this.packageManagementEvents = packageManagementEvents;
43-
4441
RegisterEvents();
45-
TryGetActiveProject();
4642
}
4743

4844
void RegisterEvents()
@@ -52,36 +48,27 @@ void RegisterEvents()
5248
packageManagementEvents.ParentPackagesUpdated += InstalledPackagesChanged;
5349
}
5450

55-
void TryGetActiveProject()
56-
{
57-
try {
58-
project = solution.GetActiveProject();
59-
} catch (Exception ex) {
60-
errorMessage = ex.Message;
61-
}
62-
}
63-
64-
void InstalledPackagesChanged(object sender, EventArgs e)
65-
{
66-
ReadPackages();
67-
}
68-
6951
protected override void OnDispose()
7052
{
7153
packageManagementEvents.ParentPackageInstalled -= InstalledPackagesChanged;
7254
packageManagementEvents.ParentPackageUninstalled -= InstalledPackagesChanged;
7355
packageManagementEvents.ParentPackagesUpdated -= InstalledPackagesChanged;
7456
}
7557

58+
void InstalledPackagesChanged(object sender, EventArgs e)
59+
{
60+
ReadPackages();
61+
}
62+
7663
protected override IQueryable<IPackage> GetAllPackages()
7764
{
78-
if (errorMessage != null) {
65+
if (!string.IsNullOrEmpty(errorMessage)) {
7966
ThrowOriginalExceptionWhenTryingToGetProjectManager();
8067
}
8168
if (project != null) {
8269
return project.GetPackages();
8370
}
84-
return solution.GetInstalledPackages();
71+
return solution.GetPackages();
8572
}
8673

8774
void ThrowOriginalExceptionWhenTryingToGetProjectManager()

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,14 @@ public InstalledPackagesViewModel InstalledPackagesViewModel {
5959
get { return packagesViewModels.InstalledPackagesViewModel; }
6060
}
6161

62-
public RecentPackagesViewModel RecentPackagesViewModel {
63-
get { return packagesViewModels.RecentPackagesViewModel; }
64-
}
65-
6662
public UpdatedPackagesViewModel UpdatedPackagesViewModel {
6763
get { return packagesViewModels.UpdatedPackagesViewModel; }
6864
}
6965

66+
public RecentPackagesViewModel RecentPackagesViewModel {
67+
get { return packagesViewModels.RecentPackagesViewModel; }
68+
}
69+
7070
public string Title {
7171
get { return viewTitle.Title; }
7272
}

0 commit comments

Comments
 (0)