Skip to content

Commit

Permalink
Fixed issue when searching updates for connection controls
Browse files Browse the repository at this point in the history
  • Loading branch information
MscrmTools committed Feb 23, 2023
1 parent f75a06a commit 05caee1
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 24 deletions.
4 changes: 2 additions & 2 deletions XrmToolBox.Extensibility/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,5 @@
// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
// en utilisant '*', comme indiqué ci-dessous :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.2023.1.63")]
[assembly: AssemblyFileVersion("1.2023.1.63")]
[assembly: AssemblyVersion("1.2023.2.64")]
[assembly: AssemblyFileVersion("1.2023.2.64")]
52 changes: 33 additions & 19 deletions XrmToolBox.ToolLibrary/ToolLibrary.cs
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ public ToolLibrary(IToolLibrarySettings settings, Dictionary<string, string> rep

#region Properties

public bool AllowConnectionControlPreRelease { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public bool AllowConnectionControlPreRelease { get; set; }
public List<string> Categories { get; set; }
public PluginDeletions PendingDeletions => pendingDeletions;
public PluginUpdates PendingUpdates => pendingUpdates;
Expand Down Expand Up @@ -293,27 +293,16 @@ public async Task<PackageVersion> GetPackageVersion(string packageName)
var jor = JObject.Parse(rData);

var latestVersion = ((JArray)((JArray)jor["items"]).Last()["items"]).Last();
var content = await HttpClient.GetByteArrayAsync(latestVersion["packageContent"].ToString()).ConfigureAwait(false);

var versionInfoResponse = await HttpClient.GetAsync(latestVersion["@id"].ToString()).ConfigureAwait(false);
var versionInfoData = await versionInfoResponse.Content.ReadAsStringAsync();
var jov = JObject.Parse(versionInfoData);

var ceUrl = jov["catalogEntry"].ToString();
var ceResponse = await HttpClient.GetAsync(ceUrl).ConfigureAwait(false);
var ceData = await ceResponse.Content.ReadAsStringAsync();
var ceo = JObject.Parse(ceData);

var fullVersion = ceo["version"].ToString();

var nugetVersion = new Version(fullVersion.Split('-')[0]);
var release = fullVersion.IndexOf("-") > 0 ? fullVersion.Split('-')[1] : "";
var isPreRelease = (bool)ceo["isPrerelease"];
var releasenotes = ceo["releaseNotes"].ToString();
var pv = await GetSpecificPackageVersion(packageName, latestVersion);
while (pv.IsPrerelease && !AllowConnectionControlPreRelease)
{
latestVersion = latestVersion.Previous;

string version = fullVersion;
pv = await GetSpecificPackageVersion(packageName, latestVersion);
}

return new PackageVersion(packageName, version, releasenotes, content);
return pv;
}

public XtbPlugin GetPluginByFileName(string filename)
Expand Down Expand Up @@ -736,6 +725,31 @@ private T GetContent<T>(string url, bool fromStoreFromPortalForm) where T : new(
return new T();
}

private async Task<PackageVersion> GetSpecificPackageVersion(string packageName, JToken jo)
{
var content = await HttpClient.GetByteArrayAsync(jo["packageContent"].ToString()).ConfigureAwait(false);

var versionInfoResponse = await HttpClient.GetAsync(jo["@id"].ToString()).ConfigureAwait(false);
var versionInfoData = await versionInfoResponse.Content.ReadAsStringAsync();
var jov = JObject.Parse(versionInfoData);

var ceUrl = jov["catalogEntry"].ToString();
var ceResponse = await HttpClient.GetAsync(ceUrl).ConfigureAwait(false);
var ceData = await ceResponse.Content.ReadAsStringAsync();
var ceo = JObject.Parse(ceData);

var fullVersion = ceo["version"].ToString();

var nugetVersion = new Version(fullVersion.Split('-')[0]);
var release = fullVersion.IndexOf("-") > 0 ? fullVersion.Split('-')[1] : "";
var isPreRelease = (bool)ceo["isPrerelease"];
var releasenotes = ceo["releaseNotes"].ToString();

string version = fullVersion;

return new PackageVersion(packageName, version, releasenotes, content);
}

private CompatibleState IsPluginDependencyCompatible(Version xtbDependencyVersion)
{
if (xtbDependencyVersion >= MinCompatibleVersion
Expand Down
2 changes: 1 addition & 1 deletion XrmToolBox/New/NewForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1921,7 +1921,7 @@ private async void tsddbTools_DropDownItemClicked(object sender, ToolStripItemCl

if (MessageBox.Show(this, message, @"Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
var ccSettings = store.PrepareConnectionControlsUpdate(this, false).GetAwaiter().GetResult();
var ccSettings = await store.PrepareConnectionControlsUpdate(this, false);

Options.Instance.ConnectionControlsVersion = ccSettings.Version;
Options.Instance.Save();
Expand Down
4 changes: 2 additions & 2 deletions XrmToolBox/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,5 @@
// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
// en utilisant '*', comme indiqué ci-dessous :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.2023.1.63")]
[assembly: AssemblyFileVersion("1.2023.1.63")]
[assembly: AssemblyVersion("1.2023.2.64")]
[assembly: AssemblyFileVersion("1.2023.2.64")]

0 comments on commit 05caee1

Please sign in to comment.