Exemplo n.º 1
0
        private async Task Download()
        {
            while (Tools.CheckFileMd5(UpdateFile, _serverHash) == false)
            {
                metroLabel2.Text        = @"0 MB/s";
                metroLabel3.Text        = @"0 von 0 MB's";
                metroProgressBar1.Value = 0;

                if (File.Exists(UpdateFile))
                {
                    Logger.Write("Beschädigte Update Datei gefunden...");
                    try
                    {
                        File.Delete(UpdateFile);
                        Logger.Write("Datei wurde Erfolgreich gelöscht...");
                    }
                    catch (Exception ex)
                    {
                        Logger.Write("Datei Löschen Fehlgeschlagen - Grund: " + ex.Message);
                        MetroMessageBox.Show(this, "Die Temporäre Update Datei (update.tmp) konnte nicht gelöscht werden." + Environment.NewLine +
                                             "Bitte Lösche die Datei Manuell und Versuche es anschließend Erneut!", "Löschen Fehlgeschlagen", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        break;
                    }
                }
                Logger.Write("Update wird heruntergeladen...");
                try
                {
                    var wClient = new BetterWebClient {
                        Timeout = 10000
                    };
                    wClient.DownloadFileCompleted   += _DownloadFileCompleted;
                    wClient.DownloadProgressChanged += _DownloadProgressChanged;
                    _sw.Start();
                    await wClient.DownloadFileTaskAsync(new Uri(_serverUrl), UpdateFile);
                }
                catch (Exception ex)
                {
                    Logger.Write("Download Fehlgeschlagen - Grund: " + ex.Message);
                    if (OSystem.IsAvailableNetworkActive())
                    {
                    }
                }
                if (Tools.CheckFileMd5(UpdateFile, _serverHash))
                {
                    break;
                }
                DialogResult result = MetroMessageBox.Show(this, "Möchten Sie es erneut versuchen?", "Download Fehlgeschlagen", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                if (result == DialogResult.No)
                {
                    break;
                }
            }
        }