private void btnCheckForUpdate_Click(object sender, EventArgs e) { try { btnCheckForUpdate.Enabled = false; richTxtBoxMessage.Clear(); AddRichtextMessage("Application version:", Color.Black); AddRichtextMessage(" > " + ApplicationSettings.ApplicationVersion, Color.Orange); AddRichtextMessage(Environment.NewLine, Color.Black); AddRichtextMessage("Checking for updates...", Color.Black); IRepositoryRelease release = projectRepositoryEndpoint.RepositoryLatestRelease(); if (projectRepositoryEndpoint.IsApplicationVersionUpToDate(release)) { AddRichtextMessage(Environment.NewLine, Color.Black); AddRichtextMessage("[Release Notice of this update]", Color.Blue); AddRichtextMessage(release.ReleaseNote, Color.Black); AddRichtextMessage(Environment.NewLine, Color.Black); AddRichtextMessage("Application is up to date...", Color.Green); AddRichtextMessage(Environment.NewLine, Color.Black); } else { AddRichtextMessage(Environment.NewLine, Color.Black); AddRichtextMessage("!!! A new version was available !!!", Color.Orange); AddRichtextMessage(Environment.NewLine, Color.Black); AddRichtextMessage("[New Version]", Color.Blue); AddRichtextMessage(release.ReleaseTagName, Color.Black); AddRichtextMessage(Environment.NewLine, Color.Black); AddRichtextMessage("[Release Notice]", Color.Blue); AddRichtextMessage(release.ReleaseNote, Color.Black); AddRichtextMessage(Environment.NewLine, Color.Black); AddRichtextMessage("[Release package download URL]", Color.Blue); AddRichtextMessage(release.ReleaseURL, Color.Black); } } catch (Exception ex) { AddRichtextMessage(Environment.NewLine, Color.Black); AddRichtextMessage(">>>>>>>>>>", Color.DarkBlue); AddRichtextMessage(ex.Message, Color.Red); AddRichtextMessage("<<<<<<<<<<", Color.DarkBlue); AddRichtextMessage(Environment.NewLine, Color.Black); AddRichtextMessage("Try again later to refresh request update quota or if your internet is stable...", Color.Orange); } btnCheckForUpdate.Enabled = true; }
public bool IsApplicationVersionUpToDate(IRepositoryRelease release) { try { //sample format => RELEASE_V_1_0_3 String[] serverVersion = release.ReleaseTagName.ToUpper().Replace("RELEASE_V_", "").Split(Char.Parse("_")); String[] appVersion = ApplicationSettings.ApplicationVersionSplitted; for (int ctr = 0; ctr < serverVersion.Length; ctr++) { int version = int.Parse(serverVersion[ctr]); int appver = int.Parse(appVersion[ctr]); if (version > appver) { return(false); } } } catch (Exception ex) { throw ex; } return(true); }