コード例 #1
0
        public async Task <UpdateCheckResponse> CheckForUpdates(string userAgent, int delay)
        {
            var response = new UpdateCheckResponse {
                IsNewerVersion = false
            };

            try
            {
                await _helpers.Wait(delay);

                var json = await _githubProvider.FetchLatestReleases(userAgent).ConfigureAwait(false);

                var releases            = JsonConvert.DeserializeObject <List <GithubRelease> >(json);
                var releastVersionMatch = new Regex(@"^v\d+\.\d+\.\d+$");
                var latest = releases.Where(x => !x.Prerelease && releastVersionMatch.IsMatch(x.TagName)).FirstOrDefault();
                if (latest != null)
                {
                    var versionString = latest.TagName.Substring(1);
                    var latestVersion = new Version(versionString + ".0");
                    response.IsNewerVersion = latestVersion > _helpers.ApplicationVersion;
                    response.LatestVersion  = versionString;
                    response.Url            = latest.HtmlUrl;
                }
            }
            catch (Exception ex)
            {
                DebugHandleException(ex);
            }
            return(response);
        }
コード例 #2
0
        public NewVersionWindow(UpdateCheckResponse e)
        {
            InitializeComponent();
            var newVersionViewModel = App.ServiceLocator.NewVersionViewModel(this);

            newVersionViewModel.Version = e.LatestVersion;
            newVersionViewModel.Url     = e.Url;
            DataContext = newVersionViewModel;
        }