CNCMaps.GUI.MainForm.DownloadAndUpdate C# (CSharp) Метод

DownloadAndUpdate() приватный Метод

private DownloadAndUpdate ( string url ) : void
url string
Результат void
        private void DownloadAndUpdate(string url)
        {
            UpdateStatus("downloading new program version", 0);
            var wc = new WebClient();
            wc.Proxy = null;

            var address = new Uri(UpdateChecker.UpdateCheckHost + url);
            wc.DownloadProgressChanged += (sender, args) => BeginInvoke((Action)delegate {
                UpdateStatus(string.Format("downloading, {0}%", args.ProgressPercentage * 95 / 100), args.ProgressPercentage * 95 / 100);
            });

            wc.DownloadDataCompleted += (sender, args) => {
                UpdateStatus("download complete, running installer", 100);
                string appPath = Path.GetTempPath();
                string dest = Path.Combine(appPath, "CNCMaps_update");

                int suffixNr = 0;
                while (File.Exists(dest + (suffixNr > 0 ? suffixNr.ToString() : "") + ".exe"))
                    suffixNr++;

                dest += (suffixNr > 0 ? suffixNr.ToString() : "") + ".exe";
                File.WriteAllBytes(dest, args.Result);
                // invoke
                var psi = new ProcessStartInfo(dest);
                psi.Arguments = "/Q";
                Process.Start(psi);
                Close();
            };

            // trigger it all
            wc.DownloadDataAsync(address);
        }