diff --git a/Windows11Upgrade/win11_downloadSelection.cs b/Windows11Upgrade/win11_downloadSelection.cs
index 8cb7335..e0430d4 100644
--- a/Windows11Upgrade/win11_downloadSelection.cs
+++ b/Windows11Upgrade/win11_downloadSelection.cs
@@ -27,22 +27,21 @@ public win11_downloadSelection() {
langagesFiltered = "" + langagesFiltered + "";
var languagesXml = new XmlDocument();
languagesXml.LoadXml(langagesFiltered);
- foreach (XmlNode language in languagesXml.GetElementsByTagName("option"))
- foreach (XmlAttribute languageAttribute in language.Attributes)
- if (languageAttribute.Value.StartsWith("{")) {
- dynamic languageJson = JsonConvert.DeserializeObject(languageAttribute.Value);
- var current = new Language();
- current.name = languageJson["language"];
- current.id = languageJson["id"];
- languages.Add(current);
+ foreach (XmlNode language in languagesXml.GetElementsByTagName("option")) {
+ var attribute = language.Attributes.GetNamedItem("value");
+ if (attribute == null || string.IsNullOrEmpty(attribute.Value)) {
+ continue;
}
- foreach (var item in languages) listLanguages.Items.Add(item.name);
+ languages.Add(JsonConvert.DeserializeObject(attribute.Value));
+ }
+
+ foreach (var item in languages) listLanguages.Items.Add(item.language);
}
private void languageList_SelectionChange(object sender, EventArgs e) {
btnDownloadSystem.Enabled = true;
- btnDownloadSystem.Text = "Download " + languages[listLanguages.SelectedIndex].name + " Windows 11 ISO";
+ btnDownloadSystem.Text = "Download " + languages[listLanguages.SelectedIndex].language + " Windows 11 ISO";
}
private void btnDownloadSystem_Click(object sender, EventArgs e) {
@@ -53,7 +52,7 @@ private void btnDownloadSystem_Click(object sender, EventArgs e) {
"/api/controls/contentinclude/html?pageId=a224afab-2097-4dfa-a2ba-463eb191a285&host=www.microsoft.com&segments=software-download,windows11&query=&action=GetProductDownloadLinksBySku";
urlDownload += "&sessionId=" + guid;
urlDownload += "&skuId=" + languages[listLanguages.SelectedIndex].id;
- urlDownload += "&language=" + languages[listLanguages.SelectedIndex].name;
+ urlDownload += "&language=" + languages[listLanguages.SelectedIndex].language;
urlDownload += "&sdVersion=2";
var webClient = new WebClient();
@@ -67,15 +66,19 @@ private void btnDownloadSystem_Click(object sender, EventArgs e) {
downloadFiltered = downloadFiltered.Replace(" ", " ");
var downloadXml = new XmlDocument();
downloadXml.LoadXml(downloadFiltered);
- foreach (XmlNode downloadLink in downloadXml.GetElementsByTagName("input"))
- foreach (XmlAttribute downloadAttribute in downloadLink.Attributes)
- if (downloadAttribute.Value.StartsWith("{") && downloadAttribute.Value.Contains("Uri")) {
- dynamic downloadJson = JsonConvert.DeserializeObject(downloadAttribute.Value);
- globals.downloadURL = downloadJson["Uri"];
- Hide();
- var downloadSystem = new win11_downloadSystem();
- downloadSystem.Show();
+ foreach (XmlNode downloadLink in downloadXml.GetElementsByTagName("input")) {
+ var attribute = downloadLink.Attributes.GetNamedItem("value");
+ if (attribute == null || string.IsNullOrEmpty(attribute.Value)) {
+ continue;
}
+
+ dynamic downloadJson = JsonConvert.DeserializeObject(attribute.Value);
+ globals.downloadURL = downloadJson["Uri"];
+ Hide();
+ var downloadSystem = new win11_downloadSystem();
+ downloadSystem.Show();
+ break;
+ }
}
private void exit(object sender, FormClosingEventArgs e) {
@@ -83,7 +86,7 @@ private void exit(object sender, FormClosingEventArgs e) {
}
public class Language {
- public string name { get; set; }
+ public string language { get; set; }
public string id { get; set; }
}
}