diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs
index ae6a82e8b9..1e298042c5 100644
--- a/Emby.Server.Implementations/ApplicationHost.cs
+++ b/Emby.Server.Implementations/ApplicationHost.cs
@@ -1011,13 +1011,15 @@ namespace Emby.Server.Implementations
///
/// Comparison function used in .
///
- private static int VersionCompare(Tuple a, Tuple b)
+ private static int VersionCompare(
+ (Version PluginVersion, string Name, string Path) a,
+ (Version PluginVersion, string Name, string Path) b)
{
- int compare = string.Compare(a.Item2, b.Item2, true, CultureInfo.InvariantCulture);
+ int compare = string.Compare(a.Name, b.Name, true, CultureInfo.InvariantCulture);
if (compare == 0)
{
- return a.Item1.CompareTo(b.Item1);
+ return a.PluginVersion.CompareTo(b.PluginVersion);
}
return compare;
@@ -1034,7 +1036,7 @@ namespace Emby.Server.Implementations
protected IEnumerable GetLatestDLLVersion(string path, bool cleanup = true)
{
var dllList = new List();
- var versions = new List>();
+ var versions = new List<(Version PluginVersion, string Name, string Path)>();
var directories = Directory.EnumerateDirectories(path, "*.*", SearchOption.TopDirectoryOnly);
foreach (var dir in directories)
@@ -1043,12 +1045,12 @@ namespace Emby.Server.Implementations
if (p != -1 && Version.TryParse(dir.Substring(p + 1), out Version ver))
{
// Versioned folder.
- versions.Add(Tuple.Create(ver, dir.Substring(0, p), dir));
+ versions.Add((ver, dir.Substring(0, p), dir));
}
else
{
// Un-versioned folder.
- versions.Add(Tuple.Create(new Version(), dir, dir));
+ versions.Add((new Version(), dir, dir));
}
}
@@ -1058,10 +1060,10 @@ namespace Emby.Server.Implementations
// The first item will be the latest version.
for (int x = versions.Count - 1; x >= 0; x--)
{
- if (!string.Equals(lastName, versions[x].Item2, StringComparison.OrdinalIgnoreCase))
+ if (!string.Equals(lastName, versions[x].Name, StringComparison.OrdinalIgnoreCase))
{
- dllList.AddRange(Directory.EnumerateFiles(versions[x].Item3, "*.dll", SearchOption.AllDirectories));
- lastName = versions[x].Item2;
+ dllList.AddRange(Directory.EnumerateFiles(versions[x].Path, "*.dll", SearchOption.AllDirectories));
+ lastName = versions[x].Name;
continue;
}
@@ -1070,8 +1072,8 @@ namespace Emby.Server.Implementations
// Attempt a cleanup of old folders.
try
{
- Logger.LogDebug("Attempting to delete {0}", versions[x].Item3);
- Directory.Delete(versions[x].Item3, true);
+ Logger.LogDebug("Attempting to delete {0}", versions[x].Path);
+ Directory.Delete(versions[x].Path, true);
}
catch
{