Exemple #1
0
        /// <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;
            }
        }