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);
        }
Example #2
0
        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 { }
        }