/// <summary> /// Legge il file delle impostazioni dell'applicazione. /// </summary> public void ReadSettings() { // Verifica la presenza del file di configurazione try { OneSignal.Load(); string json = File.ReadAllText(AppSettingsFileName, Encoding.UTF8); JObject jObject = JObject.Parse(json); if (jObject == null) { throw new Exception(AppResources.errReadSettings); } if (jObject.ContainsKey(nameof(SessionTimeout))) { SessionTimeout = jObject.Value <int>(nameof(SessionTimeout)); } if (jObject.ContainsKey(nameof(BrowserExtensionHelp))) { BrowserExtensionHelp = jObject.Value <bool>(nameof(BrowserExtensionHelp)); } if (jObject.ContainsKey(nameof(LocalNotification))) { LocalNotification = jObject.Value <bool>(nameof(LocalNotification)); } if (jObject.ContainsKey(nameof(VersionSettings))) { VersionSettings = jObject.Value <string>(nameof(VersionSettings)); } if (jObject.ContainsKey(nameof(PushNotification))) { PushNotification = jObject.Value <bool>(nameof(PushNotification)); } if (jObject.ContainsKey(nameof(Access))) { Access = (SecurityAccess)jObject.Value <int>(nameof(Access)); } if (jObject.ContainsKey(nameof(CheckPasswordFrequency))) { CheckPasswordFrequency = jObject.Value <uint>(nameof(CheckPasswordFrequency)); } if (jObject.ContainsKey(nameof(CheckPasswordStartDate))) { CheckPasswordStartDate = Newtonsoft.Json.JsonConvert.DeserializeObject <DateTime>( jObject[nameof(CheckPasswordStartDate)].ToString(), dateTimeConverter); } if (jObject.ContainsKey(nameof(BackupFrequency))) { BackupFrequency = jObject.Value <uint>(nameof(BackupFrequency)); } if (jObject.ContainsKey(nameof(BackupStartDate))) { BackupStartDate = Newtonsoft.Json.JsonConvert.DeserializeObject <DateTime>( jObject[nameof(BackupStartDate)].ToString(), dateTimeConverter); } if (jObject.ContainsKey(nameof(BackupHistory))) { BackupHistory = jObject.Value <uint>(nameof(BackupHistory)); } CloudPlatform = Cloud.CloudPlatform.Unknown; if (jObject.ContainsKey(nameof(CloudPlatform))) { string strCloudPlatform = jObject.Value <string>(nameof(CloudPlatform)); foreach (Cloud.CloudPlatform cloudp in Utility.EnumHelper.GetValues <Cloud.CloudPlatform>()) { if (cloudp.ToString().ToLower().CompareTo(strCloudPlatform) == 0) { CloudPlatform = cloudp; break; } } } } catch (FileNotFoundException) { // OK, allora dovrebbe esistere il vecchio file di configurazione if (ReadOldSettingsFile()) { DeleteOldSettingsFile(); } // Scrittura del nuovo file WriteSettings(); } catch (Exception e) { Debug.WriteLine("Error occurred during the reading of the App settings. Error: " + e.Message); throw; } }