/// <summary> /// Loads the settings. /// </summary> public void Load() { try { if (string.IsNullOrEmpty(Filepath)) { return; } if (FileSystem.FileExists(Filepath)) { // Check the size of the settings file. // Delete the file if it's too big so we don't hang. if (FileSystem.FileContentLength(Filepath) > MAX_FILE_SIZE) { FileSystem.DeleteFile(Filepath); Log.WriteDebugMessage("WARNING: User settings file was too big and needed to be deleted"); return; } XmlDocument xDoc = new XmlDocument(); xDoc.Load(Filepath); AppVersion = xDoc.SelectSingleNode("/autoscreen").Attributes["app:version"]?.Value; AppCodename = xDoc.SelectSingleNode("/autoscreen").Attributes["app:codename"]?.Value; XmlNodeList xSettings = xDoc.SelectNodes(SETTING_XPATH); foreach (XmlNode xSetting in xSettings) { Setting setting = new Setting(); XmlNodeReader xReader = new XmlNodeReader(xSetting); while (xReader.Read()) { if (xReader.IsStartElement()) { switch (xReader.Name) { case SETTING_KEY: xReader.Read(); setting.Key = xReader.Value; break; case SETTING_VALUE: xReader.Read(); setting.Value = xReader.Value; break; } } } xReader.Close(); if (!string.IsNullOrEmpty(setting.Key)) { Add(setting); } } } } catch (Exception ex) { Log.WriteExceptionMessage("SettingCollection::Load", ex); } }
/// <summary> /// Loads the settings. /// </summary> public void Load(Settings settings, FileSystem fileSystem) { if (string.IsNullOrEmpty(Filepath)) { return; } if (!fileSystem.FileExists(Filepath)) { Save(settings, fileSystem); } if (fileSystem.FileExists(Filepath)) { // Check the size of the settings file. // Delete the file if it's too big so we don't hang. if (fileSystem.FileContentLength(Filepath) > MAX_FILE_SIZE) { fileSystem.DeleteFile(Filepath); return; } XmlDocument xDoc = new XmlDocument(); xDoc.Load(Filepath); AppVersion = xDoc.SelectSingleNode("/autoscreen").Attributes["app:version"]?.Value; AppCodename = xDoc.SelectSingleNode("/autoscreen").Attributes["app:codename"]?.Value; XmlNodeList xSettings = xDoc.SelectNodes(SETTING_XPATH); foreach (XmlNode xSetting in xSettings) { Setting setting = new Setting(); XmlNodeReader xReader = new XmlNodeReader(xSetting); while (xReader.Read()) { if (xReader.IsStartElement()) { switch (xReader.Name) { case SETTING_KEY: xReader.Read(); setting.Key = xReader.Value; break; case SETTING_VALUE: xReader.Read(); setting.Value = xReader.Value; break; } } } xReader.Close(); if (!string.IsNullOrEmpty(setting.Key)) { Add(setting); } } } }