@@ -190,23 +190,7 @@ private List<INugetPackage> FilteredUpdatePackages
190
190
var installedPackages = InstalledPackagesManager . InstalledPackages ;
191
191
192
192
// filter not updatable / not downgradable packages
193
- return result . Where (
194
- package =>
195
- {
196
- var installed = installedPackages . FirstOrDefault ( p => p . Id . Equals ( package . Id , StringComparison . OrdinalIgnoreCase ) ) ;
197
-
198
- if ( installed == null || package . Versions . Count == 0 )
199
- {
200
- // normally shouldn't happen but for now include it in the result
201
- return true ;
202
- }
203
-
204
- // we do not want to show packages that have no updates if we're showing updates
205
- // similarly, we do not show packages that are on the lowest possible version if we're showing downgrades
206
- return ( showDowngrades && installed . PackageVersion > package . Versions [ package . Versions . Count - 1 ] ) ||
207
- ( ! showDowngrades && installed . PackageVersion < package . Versions [ 0 ] ) ;
208
- } )
209
- . ToList ( ) ;
193
+ return FilterUpdatableOrDowngradablePackages ( result ) . ToList ( ) ;
210
194
}
211
195
}
212
196
@@ -405,6 +389,31 @@ private void OnEnable()
405
389
UnityPathHelper . EnsurePackageInstallDirectoryIsSetup ( ) ;
406
390
}
407
391
392
+ /// <summary>
393
+ /// Filter not updatable / not downgradable packages based on showDowngrades.
394
+ /// </summary>
395
+ private IEnumerable < INugetPackage > FilterUpdatableOrDowngradablePackages ( IEnumerable < INugetPackage > packages )
396
+ {
397
+ var installedPackages = InstalledPackagesManager . InstalledPackages ;
398
+
399
+ return packages . Where (
400
+ package =>
401
+ {
402
+ var installed = installedPackages . FirstOrDefault ( p => p . Id . Equals ( package . Id , StringComparison . OrdinalIgnoreCase ) ) ;
403
+
404
+ if ( installed == null || package . Versions . Count == 0 )
405
+ {
406
+ // normally shouldn't happen but for now include it in the result
407
+ return true ;
408
+ }
409
+
410
+ // we do not want to show packages that have no updates if we're showing updates
411
+ // similarly, we do not show packages that are on the lowest possible version if we're showing downgrades
412
+ return ( showDowngrades && installed . PackageVersion > package . Versions [ package . Versions . Count - 1 ] ) ||
413
+ ( ! showDowngrades && installed . PackageVersion < package . Versions [ 0 ] ) ;
414
+ } ) ;
415
+ }
416
+
408
417
private void ClearViewCache ( )
409
418
{
410
419
filteredInstalledPackages = null ;
@@ -890,7 +899,9 @@ private void DrawUpdatesHeader()
890
899
{
891
900
if ( ! showDowngrades && GUILayout . Button ( "Update All" , EditorStyles . toolbarButton , GUILayout . Width ( 100 ) ) )
892
901
{
893
- NugetPackageUpdater . UpdateAll ( updatePackages , InstalledPackagesManager . InstalledPackages ) ;
902
+ NugetPackageUpdater . UpdateAll (
903
+ FilterUpdatableOrDowngradablePackages ( updatePackages ) ,
904
+ InstalledPackagesManager . InstalledPackages ) ;
894
905
UpdateInstalledPackages ( ) ;
895
906
UpdateUpdatePackages ( ) ;
896
907
}
0 commit comments