CNCMaps.GUI.UpdateChecker.CheckVersion C# (CSharp) Метод

CheckVersion() публичный Метод

public CheckVersion ( ) : void
Результат void
        public void CheckVersion()
        {
            WebClient wc = new WebClient();
            wc.Proxy = null;
            wc.OpenReadCompleted += (sender, args) => Connected(this, Empty);
            wc.DownloadProgressChanged += (sender, args) => DownloadProgressChanged(this, args);
            wc.DownloadStringCompleted += (sender, args) => {
                if (args.Cancelled || args.Error != null)
                    UpdateCheckFailed(this, Empty);
                else {
                    try {
                        XmlDocument xd = new XmlDocument();
                        xd.LoadXml(args.Result);
                        var versionNode = xd["version"];
                        var version = Version.Parse(versionNode["version_string"].InnerText);
                        var releaseDate = DateTime.ParseExact(versionNode["release_date"].InnerText.Trim(), "yyyy'-'M'-'d", null);
                        string releaseNotes = versionNode["release_notes"].InnerText;
                        string url = versionNode["url"].InnerText;

                        if (version > Assembly.GetExecutingAssembly().GetName().Version)
                            UpdateAvailable(this, new UpdateAvailableArgs {
                                DownloadUrl = url,
                                ReleaseDate = releaseDate,
                                ReleaseNotes = releaseNotes,
                                Version = version,
                            });
                        else
                            AlreadyLatest(this, Empty);
                    }
                    catch {
                        UpdateCheckFailed(this, Empty);
                    }
                }
            };
            // trigger the download..
            wc.DownloadStringAsync(new Uri(UpdateCheckHost + UpdateCheckPage));
        }

Usage Example

Пример #1
0
        private void PerformUpdateCheck()
        {
            var uc = new UpdateChecker();

            uc.AlreadyLatest           += (o, e) => UpdateStatus("already latest version", 100);
            uc.Connected               += (o, e) => UpdateStatus("connected", 10);
            uc.DownloadProgressChanged += (o, e) => { /* care, xml is small anyway */ };
            uc.UpdateCheckFailed       += (o, e) => UpdateStatus("update check failed", 100);
            uc.UpdateAvailable         += (o, e) =>
            {
                UpdateStatus("update available", 100);

                var dr =
                    MessageBox.Show(
                        string.Format(
                            "An update to version {0} released on {1} is available. Release notes: \r\n\r\n{2}\r\n\r\nUpdate now?",
                            e.Version.ToString(), e.ReleaseDate.ToShortDateString(), e.ReleaseNotes), "Update available",
                        MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                if (dr == DialogResult.Yes)
                {
                    DownloadAndUpdate(e.DownloadUrl);
                }
            };
            uc.CheckVersion();
        }
All Usage Examples Of CNCMaps.GUI.UpdateChecker::CheckVersion
UpdateChecker