Пример #1
0
        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;
            }
        }
Пример #2
0
        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());
        }