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();
 }
Beispiel #4
0
        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");
                }
            });
        }