public static async Task <GithubUpdateReleaseResponse> ShouldUpdate(string ownerName, string projectName) { // Get current running assembly version and the latest release from GitHub. Task <GithubReleaseVersion> getRemoteVersion = GithubAutoUpdater.GetRemoteVersion(ownerName, projectName); string currentVersionName = GithubAutoUpdater.GetAssemblyVersion(); GithubReleaseVersion remoteVersionDetails = await getRemoteVersion; string remoteVersionName = remoteVersionDetails.Version; // Remove the "V" heading char from the version name (e.g "V1.2.4") char[] charsToRemove = { 'V', 'v' }; var remoteVersion = new Version(remoteVersionName.TrimStart(charsToRemove)); var currentVersion = new Version(currentVersionName.TrimStart(charsToRemove)); var result = new GithubUpdateReleaseResponse(); if (currentVersion < remoteVersion) { result.ShouldUpdate = true; result.NewVersionUrl = remoteVersionDetails.LatestVersionUrl; } else { result.ShouldUpdate = false; result.NewVersionUrl = string.Empty; } return(result); }
private async void CheckForUpdates() { try { var updaterResponse = await GithubAutoUpdater.ShouldUpdate( ownerName : "odedshimon", projectName : "bruteshark"); if (updaterResponse.ShouldUpdate) { var userResponse = Utilities.ShowInfoMessageBox( "New version of BruteShark is available!", MessageBoxButtons.YesNo); if (userResponse == DialogResult.Yes) { // Open the new version URL using the default browser. Process browserProcess = new Process(); browserProcess.StartInfo.UseShellExecute = true; browserProcess.StartInfo.FileName = updaterResponse.NewVersionUrl; browserProcess.Start(); } } } catch { } }