コード例 #1
0
        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())); }
        }
コード例 #2
0
        /// <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); }
        }