Skip to content

Commit 909160b

Browse files
committed
Do not check connection controls if xtb update available
Error handling
1 parent 87958bf commit 909160b

File tree

5 files changed

+60
-61
lines changed

5 files changed

+60
-61
lines changed

XrmToolBox.ToolLibrary/ToolLibrary.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,9 @@ public async Task<PackageVersion> GetPackageVersion(string packageName)
318318
versions.Add(subItem);
319319
}
320320

321-
var latestVersion = versions.OrderBy(t => DateTime.Parse(t["commitTimeStamp"].ToString())).Last();
321+
var latestVersion = versions
322+
.Where(t => t["catalogEntry"]["listed"] != null && (bool)t["catalogEntry"]["listed"] == true)
323+
.OrderBy(t => DateTime.Parse(t["commitTimeStamp"].ToString())).Last();
322324

323325
var pv = await GetSpecificPackageVersion(packageName, latestVersion);
324326
while (pv.IsPrerelease && (!AllowConnectionControlPreRelease || packageName != "MscrmTools.Xrm.Connection"))

XrmToolBox/AppCode/WebProxyHelper.cs

Lines changed: 32 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -7,69 +7,46 @@ internal class WebProxyHelper
77
{
88
public static void ApplyProxy()
99
{
10-
//if (ConnectionManager.Instance.ConnectionsList.UseCustomProxy)
11-
//{
12-
// WebRequest.DefaultWebProxy = new WebProxy
13-
// {
14-
// Address = new Uri(ConnectionManager.Instance.ConnectionsList.ProxyAddress, UriKind.Absolute),
15-
// BypassProxyOnLocal = ConnectionManager.Instance.ConnectionsList.ByPassProxyOnLocal,
16-
// UseDefaultCredentials = ConnectionManager.Instance.ConnectionsList.UseDefaultCredentials,
17-
// };
18-
19-
// if (!((WebProxy)WebRequest.DefaultWebProxy).UseDefaultCredentials)
20-
// {
21-
// var userNamePart = ConnectionManager.Instance.ConnectionsList.UserName.Split('\\');
22-
23-
// WebRequest.DefaultWebProxy.Credentials = new NetworkCredential
24-
// {
25-
// Domain = userNamePart.Length == 2 ? userNamePart[0] : null,
26-
// UserName = userNamePart.Length == 2 ? userNamePart[1] : userNamePart[0],
27-
// Password = ConnectionManager.Instance.ConnectionsList.Password
28-
// };
29-
// }
30-
//}
31-
//else if (ConnectionManager.Instance.ConnectionsList.UseInternetExplorerProxy)
32-
//{
33-
// WebRequest.DefaultWebProxy = WebRequest.GetSystemWebProxy();
34-
// //Use default credentials if no proxy credentials
35-
// if (WebRequest.DefaultWebProxy.Credentials == null)
36-
// WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;
37-
//}
38-
//else
39-
//{
40-
// WebRequest.DefaultWebProxy = null;
41-
//}
42-
if (Options.Instance.UseCustomProxy)
10+
try
4311
{
44-
WebRequest.DefaultWebProxy = new WebProxy
45-
{
46-
Address = new Uri(Options.Instance.ProxyAddress, UriKind.Absolute),
47-
BypassProxyOnLocal = Options.Instance.ByPassProxyOnLocal,
48-
UseDefaultCredentials = Options.Instance.UseDefaultCredentials,
49-
};
12+
WebRequest.DefaultWebProxy = null;
5013

51-
if (!((WebProxy)WebRequest.DefaultWebProxy).UseDefaultCredentials)
14+
if (Options.Instance.UseCustomProxy)
5215
{
53-
var userNamePart = Options.Instance.UserName.Split('\\');
54-
55-
WebRequest.DefaultWebProxy.Credentials = new NetworkCredential
16+
WebRequest.DefaultWebProxy = new WebProxy
5617
{
57-
Domain = userNamePart.Length == 2 ? userNamePart[0] : null,
58-
UserName = userNamePart.Length == 2 ? userNamePart[1] : userNamePart[0],
59-
Password = Options.Instance.Password
18+
Address = new Uri(Options.Instance.ProxyAddress, UriKind.Absolute),
19+
BypassProxyOnLocal = Options.Instance.ByPassProxyOnLocal,
20+
UseDefaultCredentials = Options.Instance.UseDefaultCredentials,
6021
};
22+
23+
if (!((WebProxy)WebRequest.DefaultWebProxy).UseDefaultCredentials)
24+
{
25+
var userNamePart = Options.Instance.UserName.Split('\\');
26+
27+
WebRequest.DefaultWebProxy.Credentials = new NetworkCredential
28+
{
29+
Domain = userNamePart.Length == 2 ? userNamePart[0] : null,
30+
UserName = userNamePart.Length == 2 ? userNamePart[1] : userNamePart[0],
31+
Password = Options.Instance.Password
32+
};
33+
}
34+
}
35+
else if (Options.Instance.UseInternetExplorerProxy)
36+
{
37+
WebRequest.DefaultWebProxy = WebRequest.GetSystemWebProxy();
38+
//Use default credentials if no proxy credentials
39+
if (WebRequest.DefaultWebProxy.Credentials == null)
40+
WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;
41+
}
42+
else
43+
{
44+
WebRequest.DefaultWebProxy = null;
6145
}
6246
}
63-
else if (Options.Instance.UseInternetExplorerProxy)
64-
{
65-
WebRequest.DefaultWebProxy = WebRequest.GetSystemWebProxy();
66-
//Use default credentials if no proxy credentials
67-
if (WebRequest.DefaultWebProxy.Credentials == null)
68-
WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials;
69-
}
70-
else
47+
catch
7148
{
72-
WebRequest.DefaultWebProxy = null;
49+
// Ignore any error
7350
}
7451
}
7552
}

XrmToolBox/New/NewForm.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,10 @@ private async void NewForm_Load(object sender, System.EventArgs e)
475475

476476
try
477477
{
478-
await CheckForConnectionControlsUpdate();
478+
if (!hasANewXtbVersion)
479+
{
480+
await CheckForConnectionControlsUpdate();
481+
}
479482

480483
if (store.PluginsCount == 0)
481484
{
@@ -1614,8 +1617,12 @@ void Mi()
16141617

16151618
#region Check for update
16161619

1620+
private bool hasANewXtbVersion = false;
1621+
16171622
private Task LaunchVersionCheck()
16181623
{
1624+
hasANewXtbVersion = false;
1625+
16191626
return new Task(() =>
16201627
{
16211628
if (Options.Instance.DoNotCheckForUpdates || new ItSecurityChecker().IsCheckForUpdateDisabled())
@@ -1653,6 +1660,8 @@ private Task LaunchVersionCheck()
16531660
if (lastReleaseVersion > currentVersion &&
16541661
Options.Instance.LastUpdateCheck.Date != DateTime.Now.Date)
16551662
{
1663+
hasANewXtbVersion = true;
1664+
16561665
var release =
16571666
releases.Items.FirstOrDefault(r => r.Version == lastReleaseVersion.ToString());
16581667

@@ -1699,7 +1708,7 @@ private void ApplyActiveContentDisplay()
16991708
{
17001709
ccsb.SetConnectionStatus(pcb.ConnectionDetail != null, pcb.ConnectionDetail);
17011710
connectionDetail = pcb.ConnectionDetail;
1702-
service = pcb.ConnectionDetail.GetCrmServiceClient();
1711+
service = pcb.ConnectionDetail?.GetCrmServiceClient();
17031712
pluginsForm.ConnectionDetail = pcb.ConnectionDetail;
17041713
}
17051714
}
@@ -1768,6 +1777,8 @@ private void checkForUpdateToolStripMenuItem_Click(object sender, System.EventAr
17681777
return;
17691778
}
17701779

1780+
hasANewXtbVersion = false;
1781+
17711782
var worker = new BackgroundWorker();
17721783
worker.DoWork += (s, evt) =>
17731784
{
@@ -1796,6 +1807,8 @@ private void checkForUpdateToolStripMenuItem_Click(object sender, System.EventAr
17961807
var currentVersion = Assembly.GetExecutingAssembly().GetName().Version;
17971808
if (lastReleaseVersion > currentVersion)
17981809
{
1810+
hasANewXtbVersion = true;
1811+
17991812
var release = releases.Items.FirstOrDefault(r => r.Version == lastReleaseVersion.ToString());
18001813

18011814
Invoke(new Action(() =>

XrmToolBox/Program.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,14 @@ private static void RunCommandIfAny()
490490

491491
private static void SetProxy()
492492
{
493-
WebProxyHelper.ApplyProxy();
493+
try
494+
{
495+
WebProxyHelper.ApplyProxy();
496+
}
497+
catch
498+
{
499+
// Ignore any error
500+
}
494501
}
495502

496503
private static void TryWaitingForOldProcess(int previousProcessId)

XrmToolBox/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,5 @@
3636
// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
3737
// en utilisant '*', comme indiqué ci-dessous :
3838
// [assembly: AssemblyVersion("1.0.*")]
39-
[assembly: AssemblyVersion("1.2025.10.72")]
40-
[assembly: AssemblyFileVersion("1.2025.10.72")]
39+
[assembly: AssemblyVersion("1.2025.10.73")]
40+
[assembly: AssemblyFileVersion("1.2025.10.73")]

0 commit comments

Comments
 (0)