//private void ReadVersion1(XPathNavigator nav) //{ // var iter = nav.SelectSingleNode("/Settings/GlobalLogLevels"); // if (iter == null) // throw new XmlSchemaException("Settings elements does not match the required elements for this version."); // else if (iter.Value != "null") // { // XmlReader pathReader = iter.ReadSubtree(); // pathReader.MoveToContent(); // pathReader.Read(); // XmlSerializer serializer = TraceLab.Core.Serialization.XmlSerializerFactory.GetSerializer(typeof(SerializableDictionary<LogLevel, GlobalLogLevelSetting>), null); // var logLevels = (SerializableDictionary<LogLevel, GlobalLogLevelSetting>)serializer.Deserialize(pathReader); // foreach (KeyValuePair<LogLevel, GlobalLogLevelSetting> pair in logLevels) // { // m_globalLogLevelSettingLookup[pair.Key].IsEnabled = pair.Value.IsEnabled; // m_globalLogLevelSettingLookup[pair.Key].IsLocked = pair.Value.IsLocked; // } // } // iter = nav.SelectSingleNode("/Settings/MainWindowData"); // if (iter == null) // throw new XmlSchemaException("Settings elements does not match the required elements for this version."); // else if (!string.IsNullOrEmpty(iter.Value) && iter.Value != "null") // { // XmlReader pathReader = iter.ReadSubtree(); // //pathReader.MoveToContent(); // //pathReader.Read(); // XmlSerializer serializer = TraceLab.Core.Serialization.XmlSerializerFactory.GetSerializer(typeof(MainWindowData), null); // MainWindowRect = (MainWindowData)serializer.Deserialize(pathReader); // } //} //private void ReadVersion2(XPathNavigator nav) //{ // // Version 1 data hasn't changed. // ReadVersion1(nav); //} private static void ReadVersion3(XPathNavigator nav) { var child = nav.SelectSingleNode("/Settings/ApplicationSettings"); s_appSettings.ReadXml(child); List <ExperimentSettings> settings = new List <ExperimentSettings>(); var nodeIterator = nav.Select("/Settings/ExperimentSettings"); while (nodeIterator.MoveNext()) { ExperimentSettings newSettings = new ExperimentSettings(s_appSettings, null); newSettings.ReadXml(nodeIterator.Current); settings.Add(newSettings); } var nonExpiredSettings = settings.Where((o) => { return((DateTime.Now - o.LastOpened) < s_appSettings.ExperimentSettingsTTL); }); foreach (ExperimentSettings expSetting in nonExpiredSettings) { s_experimentSettings.Add(expSetting.ExperimentID, expSetting); } }
internal ExperimentSettings Clone(string id) { ExperimentSettings clone = new ExperimentSettings(m_appSettings, id); foreach (GlobalLogLevelSetting setting in m_globalLogLevelSettings) { clone.SetGlobalLogLevel(setting.Level, setting.IsEnabled); } clone.m_isDefault = m_isDefault; return(clone); }
public static Settings GetSettings(string experimentID) { Settings settings = GetSettings(); ExperimentSettings expSettings = null; if (experimentID != null) { if (string.IsNullOrWhiteSpace(experimentID)) { throw new ArgumentException("experimentID", "Experiment ID cannot be whitespace."); } if (!s_experimentSettings.TryGetValue(experimentID, out expSettings)) { expSettings = new ExperimentSettings(s_appSettings, experimentID); s_experimentSettings.Add(experimentID, expSettings); } } settings.m_experimentSettings = expSettings; return(settings); }