public void LoadSettings() { if (File.Exists(GlobalVar.appDataPath + "/Settings/Settings.json".Replace('/', Path.DirectorySeparatorChar))) { try { GlobalVar.appSettings = JsonConvert.DeserializeObject <Settings>(File.ReadAllText(GlobalVar.appDataPath + "/Settings/Settings.json".Replace('/', Path.DirectorySeparatorChar))); // Load language library if (File.Exists(GlobalVar.appSettings.Tool_LanguagePath)) { TranslationManager.TranslationLoad(GlobalVar.appSettings.Tool_LanguagePath); } else { MessageBox.Show(_e("GlobalVar_unableToFindTranslationPackage") + "\n\n" + "Details:\nPath: " + GlobalVar.appSettings.Tool_LanguagePath, GlobalVar.appName, MessageBoxButton.OK, MessageBoxImage.Warning); } // Decrypt API key if (!string.IsNullOrEmpty(GlobalVar.appSettings.Api_KeyEncrypted)) { try { GlobalVar.appSettings.Api_Key = Encoding.UTF8.GetString(ProtectedData.Unprotect(Convert.FromBase64String(GlobalVar.appSettings.Api_KeyEncrypted), GlobalVar.entropy, DataProtectionScope.CurrentUser)); GlobalVar.appSettings.Api_KeyEncrypted = ""; } catch (CryptographicException ex) { MessageBox.Show(_e("GlobalVar_unableToDecryptApi") + "\n\n" + ex.Message, GlobalVar.appName, MessageBoxButton.OK, MessageBoxImage.Warning); SaveSettings(); } catch (FormatException ex) { MessageBox.Show(_e("GlobalVar_unableToDecryptApi") + "\n\n" + ex.Message, GlobalVar.appName, MessageBoxButton.OK, MessageBoxImage.Warning); SaveSettings(); } catch (Exception ex) { MessageBox.Show(_e("GlobalVar_unableToDecryptApi") + "\n\n" + ex.Message, GlobalVar.appName, MessageBoxButton.OK, MessageBoxImage.Warning); SaveSettings(); } } // Perform compatibility check GlobalVar.CompatibilityCheck(new Version(GlobalVar.appSettings._version)); MirrorManager.CheckMirror(); } catch (Exception) { MessageBox.Show(_e("GlobalVar_invalidConfiguration"), GlobalVar.appName, MessageBoxButton.OK, MessageBoxImage.Error); File.Delete(GlobalVar.appDataPath + "/Settings/Settings.json".Replace('/', Path.DirectorySeparatorChar)); Process.Start(Assembly.GetExecutingAssembly().Location.ToString()); Environment.Exit(1); return; } } }