private string GetDownloadURL(GitHubRelease release) { if (release.assets != null && release.assets.Count > 0) { GitHubAsset asset = release.assets[0]; if (asset != null && !string.IsNullOrEmpty(asset.name)) { return(string.Format("https://github.com/{0}/{1}/releases/download/{2}/{3}", Owner, Repo, release.tag_name, asset.name)); } } return(null); }
public override void CheckUpdate() { UpdateInfo = new UpdateInfo { CurrentVersion = this.CurrentVersion }; try { List <GitHubRelease> releases = GetReleases(); if (releases != null && releases.Count > 0) { GitHubRelease latestRelease = releases[0]; if (latestRelease != null && !string.IsNullOrEmpty(latestRelease.tag_name) && latestRelease.tag_name.Length > 1 && latestRelease.tag_name[0] == 'v') { UpdateInfo.LatestVersion = new Version(latestRelease.tag_name.Substring(1)); if (latestRelease.assets != null && latestRelease.assets.Count > 0) { foreach (GitHubAsset asset in latestRelease.assets) { if (asset != null && !string.IsNullOrEmpty(asset.name) && asset.name.EndsWith(".exe", StringComparison.InvariantCultureIgnoreCase)) { UpdateInfo.Filename = asset.name; UpdateInfo.DownloadURL = asset.url; UpdateInfo.RefreshStatus(); return; } } } } } } catch (Exception e) { DebugHelper.WriteException(e, "Update check failed"); } UpdateInfo.Status = UpdateStatus.UpdateCheckFailed; }
private string GetDownloadURL(GitHubRelease release) { if (release.assets != null && release.assets.Count > 0) { GitHubAsset asset = release.assets[0]; if (asset != null && !string.IsNullOrEmpty(asset.name)) { return string.Format("https://github.com/{0}/{1}/releases/download/{2}/{3}", Owner, Repo, release.tag_name, asset.name); } } return null; }