Ejemplo n.º 1
0
        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;
                }
            }
        }