Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 23 additions & 20 deletions Windows11Upgrade/win11_downloadSelection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,21 @@ public win11_downloadSelection() {
langagesFiltered = "<options>" + langagesFiltered + "</options>";
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<Language>(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) {
Expand All @@ -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();
Expand All @@ -67,23 +66,27 @@ private void btnDownloadSystem_Click(object sender, EventArgs e) {
downloadFiltered = downloadFiltered.Replace("&nbsp;", " ");
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) {
Environment.Exit(0);
}

public class Language {
public string name { get; set; }
public string language { get; set; }
public string id { get; set; }
}
}
Expand Down