Example #1
0
        public async void Check(bool notifyNoFound, bool isPreRelease)
        {
            try
            {
                var updater = new GitHubRelease(Owner, Repo);
                var url     = updater.AllReleaseUrl;

                var json = await GetAsync(url, true);

                var releases      = JsonConvert.DeserializeObject <List <Release> >(json);
                var latestRelease = VersionUtil.GetLatestRelease(releases, isPreRelease);
                if (VersionUtil.CompareVersion(latestRelease.tag_name, Version) > 0)
                {
                    LatestVersionNumber = latestRelease.tag_name;
                    LatestVersionUrl    = latestRelease.html_url;
                    NewVersionFound?.Invoke(this, new EventArgs());
                }
                else
                {
                    LatestVersionNumber = latestRelease.tag_name;
                    if (notifyNoFound)
                    {
                        NewVersionNotFound?.Invoke(this, new EventArgs());
                    }
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
                if (notifyNoFound)
                {
                    NewVersionFoundFailed?.Invoke(this, new EventArgs());
                }
            }
        }
Example #2
0
        public async Task Check(bool notifyNoFound, bool isPreRelease)
        {
            try
            {
                var updater = new GitHubRelease(Owner, Repo);
                var url     = updater.AllReleaseUrl;

                var json = await GetAsync(url);

                var releases      = JsonSerializer.Deserialize <List <Release> >(json);
                var latestRelease = VersionUtil.GetLatestRelease(releases, isPreRelease);
                if (VersionUtil.CompareVersion(latestRelease.tag_name, Version) > 0)
                {
                    LatestVersionNumber = latestRelease.tag_name;
                    LatestVersionUrl    = latestRelease.html_url;
                    NewVersionFound?.Invoke(this, new EventArgs());
                }
                else
                {
                    LatestVersionNumber = latestRelease.tag_name;
                    if (notifyNoFound)
                    {
                        NewVersionNotFound?.Invoke(this, new EventArgs());
                    }
                }
            }
            catch
            {
                if (notifyNoFound)
                {
                    NewVersionFoundFailed?.Invoke(this, new EventArgs());
                }
            }
        }
Example #3
0
        public void Check(bool notifyNoFound, bool isPreRelease)
        {
            try
            {
                var updater = new GitHubRelease(Owner, Repo);
                var url     = updater.AllReleaseUrl;

                var json = WebUtil.DownloadString(WebUtil.CreateRequest(url));

                var releases      = JsonConvert.DeserializeObject <List <Release> >(json);
                var latestRelease = VersionUtil.GetLatestRelease(releases, isPreRelease);
                if (VersionUtil.CompareVersion(latestRelease.tag_name, Version) > 0)
                {
                    LatestVersionNumber = latestRelease.tag_name;
                    LatestVersionUrl    = latestRelease.html_url;
                    NewVersionFound?.Invoke(this, new EventArgs());
                }
                else
                {
                    LatestVersionNumber = latestRelease.tag_name;
                    if (notifyNoFound)
                    {
                        NewVersionNotFound?.Invoke(this, new EventArgs());
                    }
                }
            }
            catch (Exception e)
            {
                Logging.Error(e.ToString());
                if (notifyNoFound)
                {
                    NewVersionFoundFailed?.Invoke(this, new EventArgs());
                }
            }
        }
Example #4
0
 public static void StartCheckVersion()
 {
     CheckVersionThread = new Thread(delegate()
     {
         if (!IsLatestVersion(out string description))
         {
             NewVersionFound?.Invoke(description);
         }
         else
         {
             LatestVersion?.Invoke();
         }
     });
     CheckVersionThread.Start();
 }
Example #5
0
 public static void StartCheckVersion()
 {
     CheckVersionThread = new Thread(delegate()
     {
         if (File.Exists(UpdaterPath))
         {
             while (IsFileInUse(UpdaterPath))
             {
                 Thread.Sleep(1000);
             }
             File.Delete(UpdaterPath);
         }
         if (!IsLatestVersion(out string description))
         {
             NewVersionFound?.Invoke(description);
         }
     });
     CheckVersionThread.Start();
 }
Example #6
0
        private void http_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
        {
            try
            {
                string response = e.Result;

                JsonArray result = (JsonArray)SimpleJson.SimpleJson.DeserializeObject(e.Result);

                List <string> versions = new List <string>();
                foreach (JsonObject release in result)
                {
                    if ((bool)release["prerelease"])
                    {
                        continue;
                    }
                    foreach (JsonObject asset in (JsonArray)release["assets"])
                    {
                        string url = (string)asset["browser_download_url"];
                        if (IsNewVersion(url))
                        {
                            versions.Add(url);
                        }
                    }
                }

                if (versions.Count == 0)
                {
                    return;
                }
                // sort versions
                SortVersions(versions);
                LatestVersionURL    = versions[versions.Count - 1];
                LatestVersionNumber = ParseVersionFromURL(LatestVersionURL);
                NewVersionFound?.Invoke(this, new EventArgs());
            }
            catch (Exception ex)
            {
                Logging.Debug(ex.ToString());
                return;
            }
        }
Example #7
0
        public async void Check(bool isPreRelease)
        {
            try
            {
                var updater = new GitHubRelease(Owner, Repo);
                var url     = updater.AllReleaseUrl;

                var json = await WebUtil.DownloadStringAsync(WebUtil.CreateRequest(url));

                var releases      = JsonConvert.DeserializeObject <List <Release> >(json);
                var latestRelease = VersionUtil.GetLatestRelease(releases, isPreRelease);
                LatestVersionNumber      = latestRelease.tag_name;
                LatestVersionUrl         = latestRelease.html_url;
                LatestVersionDownloadUrl = latestRelease.assets[0].browser_download_url;
                Logging.Info($"Github 最新发布版本: {latestRelease.tag_name}");
                if (VersionUtil.CompareVersion(latestRelease.tag_name, Version) > 0)
                {
                    Logging.Info($"发现新版本");
                    NewVersionFound?.Invoke(this, new EventArgs());
                }
                else
                {
                    Logging.Info("目前是最新版本");
                    NewVersionNotFound?.Invoke(this, new EventArgs());
                }
            }
            catch (Exception e)
            {
                if (e is WebException)
                {
                    Logging.Warning($"获取新版本失败: {e.Message}");
                }
                else
                {
                    Logging.Warning(e.ToString());
                }

                NewVersionFoundFailed?.Invoke(this, new EventArgs());
            }
        }
Example #8
0
 public void StartCheckVersion()
 {
     CheckVersionThread = new Thread(delegate()
     {
         if (File.Exists(UpdaterPath))
         {
             while (IsFileInUse(UpdaterPath))
             {
                 Thread.Sleep(1000);
             }
             File.Delete(UpdaterPath);
         }
         if (!IsLatestVersion())
         {
             NewVersionFound?.Invoke();
             Dispatcher.Invoke(new Action(() =>
             {
                 this.Visibility = Visibility.Visible;
             }));
         }
     });
     CheckVersionThread.Start();
 }
Example #9
0
 private static void OnNewVersionFound(string e)
 {
     NewVersionFound?.Invoke(null, e);
 }