using System; using System.Collections.Generic; using System.IO; using System.Xml.Serialization; namespace AppDiagnostic { public static class LogColorRuleRepository { private static readonly string settingsFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Sensus", "AppDiagnostic"); private static readonly string settingsPath = Path.Combine(settingsFolder, "color-rules.xml"); public static List Load() { try { if (!File.Exists(settingsPath)) { return LogColorRule.CreateDefaults(); } var serializer = new XmlSerializer(typeof(List)); using (FileStream stream = File.OpenRead(settingsPath)) { var rules = serializer.Deserialize(stream) as List; return rules == null || rules.Count == 0 ? LogColorRule.CreateDefaults() : rules; } } catch { return LogColorRule.CreateDefaults(); } } public static void Save(IEnumerable rules) { Directory.CreateDirectory(settingsFolder); var serializer = new XmlSerializer(typeof(List)); using (FileStream stream = File.Create(settingsPath)) { serializer.Serialize(stream, new List(rules)); } } } }