private void ShowUpdateWindow(UpdateContainer container) { if (_updateForm == null || _updateForm.IsDisposed) { _updateForm = new UpdateForm(container); } else { _updateForm.UpdateContainer = container; } _updateForm.ShowDialog(); _updateForm.Dispose(); }
private void CheckForUpdates() { new Thread(() => { setStatus("Checking for updates..."); string rawData = GetStringData(githubUpdateUrl); if (string.IsNullOrWhiteSpace(rawData)) { SetErrorMessage("Could not get update information. - rawData"); return; } var json = JObject.Parse(rawData); var newestReleaseVersion = json["tag_name"].ToString(); if (string.IsNullOrWhiteSpace(newestReleaseVersion)) { SetErrorMessage("Could not get update information. - newestRelease"); } else if (Helpers.Helpers.GetDateFromVersionString(newestReleaseVersion) > _currentVersion) { try { JToken asset = null; foreach (var a in json["assets"]) { if (a["name"].ToString() == "StreamCompanion.Setup.exe") { asset = a; break; } } if (asset == null) { SetErrorMessage("Could not find file to download!"); return; } var container = new UpdateContainer() { ExeDownloadUrl = asset["browser_download_url"].ToString(), Version = newestReleaseVersion, ExpectedExeSizeInBytes = asset["size"].ToObject <int>(), DownloadPageUrl = json["html_url"].ToString(), Changelog = GetChangelog() }; setStatus(string.Format("Update is avaliable! running: {0} , avaliable: {1}", Program.ScVersion, newestReleaseVersion)); ShowUpdateWindow(container); } catch (Exception e) { exception = e; SetErrorMessage("There was a problem with update information."); } } else { setStatus(string.Format("No new updates found ({0})", Program.ScVersion)); } }).Start(); }
public UpdateForm(UpdateContainer container) { UpdateContainer = container; InitializeComponent(); SetLabels(); }
private void CheckForUpdates() { Task.Run(async() => { await SetStatus("Checking for updates..."); userDelayTask = Task.Delay(500); string rawData = GetStringData(githubUpdateUrl); if (string.IsNullOrWhiteSpace(rawData)) { await SetErrorMessage("Could not get update information - rawData"); return; } JObject json; try { json = JObject.Parse(rawData); } catch (JsonReaderException) { await SetErrorMessage("Could not get update information - invalidJson"); return; } var newestReleaseVersion = json["tag_name"].ToString(); if (string.IsNullOrWhiteSpace(newestReleaseVersion)) { await SetErrorMessage("Could not get update information - newestRelease"); } else if (Helpers.Helpers.GetDateFromVersionString(newestReleaseVersion) > _currentVersion) { try { JToken asset = null; foreach (var a in json["assets"]) { if (a["name"].ToString() == "StreamCompanion.Setup.exe") { asset = a; break; } } if (asset == null) { await SetErrorMessage("Could not find file to download"); return; } var container = new UpdateContainer() { ExeDownloadUrl = asset["browser_download_url"].ToString(), Version = newestReleaseVersion, ExpectedExeSizeInBytes = asset["size"].ToObject <int>(), DownloadPageUrl = json["html_url"].ToString(), Changelog = GetChangelog() }; await SetStatus(string.Format("Update to version {0} is available", newestReleaseVersion)); ShowUpdateWindow(container); } catch (Exception e) { exception = e; await SetErrorMessage("There was a problem with update information"); } } else { await SetStatus("No new updates found"); } }); }