private async void MTModulesVw_ItemSelected(object sender, EventArgs e) { ModuleItem moduleItem = SelectedModuleItem; bool hasAuthors = (moduleItem.Authors.Count > 0); UI.MTAuthorsTxt.Enabled = hasAuthors; UI.MTAuthorsTxt.DataSource = (hasAuthors ? SelectedModuleItem.Authors : null); GitRepository repository = (moduleItem.Repository); if (UI.MTReleasesBtn.Enabled = (repository != null)) { GitRelease currentRelease = (repository.LatestRelease ?? await repository.GetLatestReleaseAsync()); bool hasReleaseMatch = (currentRelease.GetVersion() == moduleItem.Version); if (currentRelease != null && !hasReleaseMatch) { List <GitRelease> releases = (repository.Releases ?? await repository.GetReleasesAsync()); foreach (GitRelease release in releases) { if (release.GetVersion() == moduleItem.Version) { hasReleaseMatch = true; currentRelease = release; break; } } } if (currentRelease != null && moduleItem == SelectedModuleItem) { if (hasReleaseMatch) { DisplayDownloads(currentRelease); } UI.MTDownloadLatestBtn.Enabled = (repository.LatestRelease.GetVersion() > moduleItem.Version); } } else { UI.MTDownloadsLbl.Text = "Downloads: 0"; UI.MTDownloadLatestBtn.Enabled = UI.MTReleasesBtn.Enabled = false; } }
internal async void UpdateAsync() { var _ReleaseDeserializer = new DataContractJsonSerializer(typeof(GitRelease)); GitRelease _ReleaseGit = await DownloadJsonObjectAsync <GitRelease>( GitReleaseBase.GithubURI, _ReleaseDeserializer, "github").ConfigureAwait(false); if (_ReleaseGit == default) { DepictInfo = string.Format(CultureInfos, "更换服务器......请稍后"); _ReleaseGit = await DownloadJsonObjectAsync <GitRelease>( GitReleaseBase.GiteeURI, _ReleaseDeserializer, "gitee").ConfigureAwait(false); if (_ReleaseGit == default) { DepictInfo = string.Format(CultureInfos, "请检查网络或稍后再试!"); return; } } UpdateVersionCompareTo(_ReleaseGit.GetVersion()); }