/// <summary> /// Сохранение настроек в файл /// </summary> private void JsonSettingsSave() { try { //string settings = "settings.json"; string encrypt = String.Empty; if (File.Exists(SettingsPath)) { File.Delete(SettingsPath); } if (Properties.Resources.Default_Crypt_Settings == "1") { Classes.Crypt Crypt = new Classes.Crypt(); encrypt = Crypt.Encrypt(jSettings.ToString(), Variables.GetUserID()); } else { encrypt = jSettings.ToString(); } File.WriteAllText(SettingsPath, encrypt); } catch (Exception ex) { Task.Factory.StartNew(() => Debugging.Save("MainWindow", "JsonSaveSettings()", ex.Message, ex.StackTrace, jSettings.ToString())); } }
/// <summary> /// Сохранение неотправленных тикетов /// </summary> /// <param name="json"></param> private void SaveTicket(JObject json) { try { if (!Directory.Exists(MainWindow.SettingsDir + "tickets")) { Directory.CreateDirectory(MainWindow.SettingsDir + "tickets"); } string filename = String.Format("{0}_{1}.ticket", (string)MainWindow.JsonSettingsGet("info.user_id"), DateTime.Now.ToString("yyyy-MM-dd h-m-s.ffffff")); if (Properties.Resources.API_DEV_CRYPT == "1") { string encoded = new Classes.Crypt().Encrypt(json.ToString(), (string)MainWindow.JsonSettingsGet("info.user_id"), true); if (encoded != "FAIL") { File.WriteAllText(MainWindow.SettingsDir + @"tickets\" + filename, encoded, Encoding.UTF8); } } else { File.WriteAllText(MainWindow.SettingsDir + @"tickets\" + filename, json.ToString(), Encoding.UTF8); } // Очищаем поля tbMessage.Text = String.Empty; if (tbEmail.IsEnabled) { tbEmail.Text = String.Empty; } // Выдаем сообщение о сохранении тикета MainWindow.Notifier.ShowBalloonTip(5000, Lang.Set("PostClass", "AutoTicketWait", lang), Lang.Set("PageFeedback", "TicketSaved", lang), System.Windows.Forms.ToolTipIcon.Info); } catch (Exception ex) { Task.Factory.StartNew(() => Debugging.Save("PageFeedback", "SaveTicket()", ex.Message, ex.StackTrace)); } }
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); } }