private void Button_Click_1(object sender, RoutedEventArgs e) { try { string file = @"settings.json"; string settings_enc = @"settings_enc.json"; if (File.Exists(file)) { using (StreamReader reader = File.OpenText(file)) { Classes.Crypt Crypt = new Classes.Crypt(); if (File.Exists(settings_enc)) { File.Delete(settings_enc); } File.WriteAllText(settings_enc, Crypt.Encrypt(Crypt.Decrypt(reader.ReadToEnd(), Variables.GetUserID()), Variables.GetUserID())); } } } catch (Exception ex) { Task.Factory.StartNew(() => Debugging.Save("MainWindow", "JsonSaveSettings()", ex.Message, ex.StackTrace, jSettings.ToString())); } }
/// <summary> /// Загружаем настройки из файла JSON /// </summary> private void JsonSettingsLoad(bool second = false) { try { string decrypt = ""; // При необходимости создаем папку настроек if (!Directory.Exists(SettingsDir)) { Directory.CreateDirectory(SettingsDir); } if (File.Exists(SettingsPath)) { using (StreamReader reader = File.OpenText(SettingsPath)) { decrypt = reader.ReadToEnd(); if (Properties.Resources.Default_Crypt_Settings == "1") { try { Classes.Crypt Crypt = new Classes.Crypt(); decrypt = Crypt.Decrypt(decrypt, Variables.GetUserID()); } catch (Exception) { if (File.Exists(SettingsPath)) { File.Delete(SettingsPath); } Thread.Sleep(300); File.WriteAllBytes(SettingsPath, Properties.Resources.Settings_Encoded); Classes.Crypt Crypt = new Classes.Crypt(); decrypt = Crypt.Decrypt(decrypt, Variables.GetUserID()); } } jSettings = JObject.Parse(decrypt); if (jSettings == null) { // Пересоздаем файл и загружаем заново настройки SaveSettingsFile(); } else { // Проверяем настройки CheckSettings(); } } } else { // "Файл настроек не обнаружен" if (!second) { // Пересоздаем файл и загружаем заново настройки SaveSettingsFile(); } else { // Если ошибка возникла и после второго запуска - выводим уведомление юзеру. MessageShow(Lang.Set("MainWindow", "Settings_Not_Found", (string)JsonSettingsGet("info.language"))); jSettings = null; } } } catch (Exception ex) { Debugging.Save("MainWindow", "JsonLoadSettings()", ex.Message, ex.StackTrace); } }