Skip to content

Commit 7c02771

Browse files
committed
Implement workaround for WinGet
1 parent 946080e commit 7c02771

2 files changed

Lines changed: 23 additions & 9 deletions

File tree

src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/NativePackageHandler.cs

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Collections.Concurrent;
2+
using System.Linq.Expressions;
23
using Microsoft.Management.Deployment;
34
using UniGetUI.Core.Logging;
45
using UniGetUI.PackageEngine.Enums;
@@ -50,17 +51,29 @@ public static void AddPackage(IPackage package, CatalogPackage catalogPackage)
5051
//
5152
//private static CatalogPackageMetadata? _getDetails(IPackage package)
5253
{
53-
if (__nativeDetails.TryGetValue(package.GetHash(), out CatalogPackageMetadata? metadata))
54-
return metadata;
54+
try
55+
{
56+
if (__nativeDetails.TryGetValue(package.GetHash(), out CatalogPackageMetadata? metadata))
57+
return metadata;
5558

56-
CatalogPackage? catalogPackage = GetPackage(package);
57-
metadata = catalogPackage?.DefaultInstallVersion?.GetCatalogPackageMetadata();
58-
metadata ??= catalogPackage?.InstalledVersion?.GetCatalogPackageMetadata();
59+
CatalogPackage? catalogPackage = GetPackage(package);
60+
if (catalogPackage is null) return null;
5961

60-
if (metadata is not null)
61-
__nativeDetails[package.GetHash()] = metadata;
62+
var availableVersions = catalogPackage.AvailableVersions?.ToArray() ?? [];
63+
if (availableVersions.Length > 0)
64+
{
65+
metadata = catalogPackage.GetPackageVersionInfo(availableVersions[0]).GetCatalogPackageMetadata();
66+
}
6267

63-
return metadata;
68+
if (metadata is not null)
69+
__nativeDetails[package.GetHash()] = metadata;
70+
71+
return metadata;
72+
}
73+
catch (Exception ex)
74+
{
75+
throw;
76+
}
6477
}
6578

6679
/// <summary>

src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/NativeWinGetHelper.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,8 @@ public IReadOnlyList<Package> GetInstalledPackages_UnSafe()
197197
var availableVersions = nativePackage.AvailableVersions?.ToArray() ?? [];
198198
if (availableVersions.Length > 0)
199199
{
200-
source = Manager.SourcesHelper.Factory.GetSourceOrDefault(nativePackage.InstalledVersion.PackageCatalog.Info.Name);
200+
var installPackage = nativePackage.GetPackageVersionInfo(availableVersions[0]);
201+
source = Manager.SourcesHelper.Factory.GetSourceOrDefault(installPackage.PackageCatalog.Info.Name);
201202
}
202203
else
203204
{

0 commit comments

Comments
 (0)