コード例 #1
0
ファイル: Settings.cs プロジェクト: thbin/TraceLab
        //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);
            }
        }
コード例 #2
0
ファイル: ExperimentSettings.cs プロジェクト: thbin/TraceLab
        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);
        }
コード例 #3
0
ファイル: Settings.cs プロジェクト: thbin/TraceLab
        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);
        }