Skip to content

Commit ab1963d

Browse files
committed
base skeleton of new function
1 parent 8c59b05 commit ab1963d

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

  • src/UniGetUI.PackageEngine.Managers.Generic.NuGet

src/UniGetUI.PackageEngine.Managers.Generic.NuGet/BaseNuGet.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
using System.Text;
12
using System.Text.RegularExpressions;
23
using System.Web;
4+
using UniGetUI.Core.Classes;
35
using UniGetUI.Core.Data;
46
using UniGetUI.Core.Tools;
7+
using UniGetUI.PackageEngine.Enums;
58
using UniGetUI.PackageEngine.Interfaces;
69
using UniGetUI.PackageEngine.ManagerClasses.Classes;
710
using UniGetUI.PackageEngine.ManagerClasses.Manager;
@@ -104,6 +107,36 @@ protected sealed override IReadOnlyList<Package> FindPackages_UnSafe(string quer
104107
return Packages;
105108
}
106109

110+
protected sealed override IReadOnlyList<Package> GetAvailableUpdates_UnSafe()
111+
{
112+
var logger = TaskLogger.CreateNew(LoggableTaskType.ListUpdates);
113+
114+
var installedPackages = TaskRecycler<IReadOnlyList<IPackage>>.RunOrAttach(GetInstalledPackages);
115+
116+
var packageIds = new StringBuilder();
117+
var packageVers = new StringBuilder();
118+
foreach(var package in installedPackages)
119+
{
120+
packageIds.Append(package.Id + "|");
121+
packageVers.Append(package.VersionString + "|");
122+
}
123+
124+
var SearchUrl = $"https://www.powershellgallery.com/api/v2/GetUpdates()?" +
125+
$"?packageIds='{HttpUtility.UrlEncode(packageIds.ToString())}'" +
126+
$"&versions='{HttpUtility.UrlEncode(packageVers.ToString())}'" +
127+
$"&includePrerelease=0&includeAllVersions=0";
128+
129+
using HttpClient client = new(CoreData.GenericHttpClientParameters);
130+
client.DefaultRequestHeaders.UserAgent.ParseAdd(CoreData.UserAgentString);
131+
HttpResponseMessage response = client.GetAsync(SearchUrl).GetAwaiter().GetResult();
132+
133+
if (!response.IsSuccessStatusCode)
134+
{
135+
logger.Error($"Failed to fetch api at Url={SearchUrl} with status code {response.StatusCode}");
136+
}
137+
138+
return installedPackages;
139+
}
107140
}
108141

109142
}

0 commit comments

Comments
 (0)