@@ -68,7 +68,7 @@ private void OnPluginUninstalled(IPlugin plugin)
68
68
/// <param name="newVersion">The new version.</param>
69
69
private void OnPluginUpdated ( IPlugin plugin , PackageVersionInfo newVersion )
70
70
{
71
- _logger . Info ( "Plugin updated: {0} {1} {2}" , newVersion . name , newVersion . version , newVersion . classification ) ;
71
+ _logger . Info ( "Plugin updated: {0} {1} {2}" , newVersion . name , newVersion . versionStr ?? string . Empty , newVersion . classification ) ;
72
72
73
73
EventHelper . FireEventIfNotNull ( PluginUpdated , this , new GenericEventArgs < Tuple < IPlugin , PackageVersionInfo > > { Argument = new Tuple < IPlugin , PackageVersionInfo > ( plugin , newVersion ) } , _logger ) ;
74
74
@@ -87,7 +87,7 @@ private void OnPluginUpdated(IPlugin plugin, PackageVersionInfo newVersion)
87
87
/// <param name="package">The package.</param>
88
88
private void OnPluginInstalled ( PackageVersionInfo package )
89
89
{
90
- _logger . Info ( "New plugin installed: {0} {1} {2}" , package . name , package . version , package . classification ) ;
90
+ _logger . Info ( "New plugin installed: {0} {1} {2}" , package . name , package . versionStr ?? string . Empty , package . classification ) ;
91
91
92
92
EventHelper . FireEventIfNotNull ( PluginInstalled , this , new GenericEventArgs < PackageVersionInfo > { Argument = package } , _logger ) ;
93
93
@@ -133,6 +133,16 @@ public InstallationManager(ILogger logger, IApplicationHost appHost, IApplicatio
133
133
_logger = logger ;
134
134
}
135
135
136
+ private Version GetPackageVersion ( PackageVersionInfo version )
137
+ {
138
+ return new Version ( ValueOrDefault ( version . versionStr , "0.0.0.1" ) ) ;
139
+ }
140
+
141
+ private static string ValueOrDefault ( string str , string def )
142
+ {
143
+ return string . IsNullOrEmpty ( str ) ? def : str ;
144
+ }
145
+
136
146
/// <summary>
137
147
/// Gets all available packages.
138
148
/// </summary>
@@ -197,7 +207,7 @@ protected IEnumerable<PackageInfo> FilterPackages(List<PackageInfo> packages)
197
207
foreach ( var package in packages )
198
208
{
199
209
package . versions = package . versions . Where ( v => ! string . IsNullOrWhiteSpace ( v . sourceUrl ) )
200
- . OrderByDescending ( v => v . version ) . ToList ( ) ;
210
+ . OrderByDescending ( GetPackageVersion ) . ToList ( ) ;
201
211
}
202
212
203
213
// Remove packages with no versions
@@ -211,7 +221,7 @@ protected IEnumerable<PackageInfo> FilterPackages(List<PackageInfo> packages, Pa
211
221
foreach ( var package in packages )
212
222
{
213
223
package . versions = package . versions . Where ( v => ! string . IsNullOrWhiteSpace ( v . sourceUrl ) )
214
- . OrderByDescending ( v => v . version ) . ToList ( ) ;
224
+ . OrderByDescending ( GetPackageVersion ) . ToList ( ) ;
215
225
}
216
226
217
227
if ( packageType . HasValue )
@@ -272,7 +282,7 @@ public async Task<PackageVersionInfo> GetPackage(string name, string guid, Packa
272
282
return null ;
273
283
}
274
284
275
- return package . versions . FirstOrDefault ( v => v . version . Equals ( version ) && v . classification == classification ) ;
285
+ return package . versions . FirstOrDefault ( v => GetPackageVersion ( v ) . Equals ( version ) && v . classification == classification ) ;
276
286
}
277
287
278
288
/// <summary>
@@ -309,7 +319,7 @@ public PackageVersionInfo GetLatestCompatibleVersion(IEnumerable<PackageInfo> av
309
319
}
310
320
311
321
return package . versions
312
- . OrderByDescending ( v => v . version )
322
+ . OrderByDescending ( GetPackageVersion )
313
323
. FirstOrDefault ( v => v . classification <= classification && IsPackageVersionUpToDate ( v , currentServerVersion ) ) ;
314
324
}
315
325
@@ -338,7 +348,7 @@ public async Task<IEnumerable<PackageVersionInfo>> GetAvailablePluginUpdates(Ver
338
348
{
339
349
var latestPluginInfo = GetLatestCompatibleVersion ( catalog , p . Name , p . Id . ToString ( ) , applicationVersion , _config . CommonConfiguration . SystemUpdateLevel ) ;
340
350
341
- return latestPluginInfo != null && latestPluginInfo . version != null && latestPluginInfo . version > p . Version ? latestPluginInfo : null ;
351
+ return latestPluginInfo != null && GetPackageVersion ( latestPluginInfo ) > p . Version ? latestPluginInfo : null ;
342
352
343
353
} ) . Where ( i => i != null ) . ToList ( ) ;
344
354
0 commit comments