public static void ShowError(string message) { MessageBoxCustom messageBoxСustom = new MessageBoxCustom("Ошибка", message); messageBoxСustom.ShowDialog(); }
void Download() { Progress.Value = 0; GridError.Visibility = Visibility.Hidden; int Description; WebClient webClient = new WebClient(); next = false; if (check) { Progress.Maximum = 5; try { ShowStatus("Проверка соединения с интернетом..."); if (!InternetGetConnectedState(out Description, 0)) { throw new Exception("Отсутствует соединение с Интернетом."); } UpdateProgress(); ShowStatus("Загрузка данных с хеш-суммой..."); webClient.DownloadFile(new Uri("https://raw.githubusercontent.com/mixail167/Millionaire/master/data.md5"), "data.md5"); UpdateProgress(); ShowStatus("Вычисление хеш-суммы..."); if (!File.Exists("data.bin")) { throw new Exception("Файл с основными данными не найден."); } byte[] checkSum = CalculateMD5("data.bin"); if (checkSum.Length > 0) { UpdateProgress(); if (!File.Exists("data.md5")) { throw new Exception("Файл с хеш-суммой отсутствует."); } byte[] checkSumNew = ReadMD5("data.md5"); if (checkSumNew.Length > 0) { if (!checkSumNew.SequenceEqual(checkSum)) { UpdateProgress(); ShowStatus("Загрузка основных данных..."); webClient.DownloadFile(new Uri("https://raw.githubusercontent.com/mixail167/Millionaire/master/data.bin"), "data.bin"); UpdateProgress(); next = true; } else { this.Hide(); MessageBoxCustom messageBoxСustom = new MessageBoxCustom("Внимание", "Обновление данных не требуется."); messageBoxСustom.ShowDialog(); } } } Close(); } catch (Exception exception) { ShowError(exception.Message); } finally { File.Delete("data.md5"); } } else { Progress.Maximum = 2; try { ShowStatus("Проверка соединения с интернетом..."); if (!InternetGetConnectedState(out Description, 0)) { throw new Exception("Отсутствует соединение с Интернетом."); } UpdateProgress(); ShowStatus("Загрузка основных данных..."); webClient.DownloadFile(new Uri("https://raw.githubusercontent.com/mixail167/Millionaire/master/data.bin"), "data.bin"); UpdateProgress(); next = true; Close(); } catch (Exception exception) { ShowError(exception.Message); } } }