public SettingsViewModel() { _settings = MouseSettings.ReadSettings() ?? new MouseSettings(); }
/// <summary> /// Чтение файлов с языками /// </summary> private static void ReadLanguages(MouseSettings ms) { string cult; foreach (var item in Directory.GetFiles("Languages", "lang.*.xaml")) { cult = item.Substring(item.IndexOf('.') + 1); cult = cult.Substring(0, cult.LastIndexOf('.')); ms.Languages.Add(new CultureInfo(cult)); } }
/// <summary> /// Чтение файла с настройками /// </summary> public static MouseSettings ReadSettings() { MouseSettings ms = null; if (File.Exists(SETTINGS_FILENAME)) { using (TextReader tr = new StreamReader(SETTINGS_FILENAME)) { XmlSerializer xs = new XmlSerializer(typeof(MouseSettings)); ms = (MouseSettings)xs.Deserialize(tr); ms.CheckRegistry(); if (ms.AutoStart) { Messenger.Default.Send(new NotificationMessage<MouseSettings>(ms, string.Empty)); } } } else ms = new MouseSettings(); ms.Languages = new List<CultureInfo>(); ReadLanguages(ms); if (ms.SelectedLanguageName == null) { ms.SelectedLanguageName = "en-US"; } ms.SelectedLanguage = ms.Languages.Find(l => l.Name == ms.SelectedLanguageName); return ms; }
public static void Save(MouseSettings ms) { using (TextWriter tw = new StreamWriter(SETTINGS_FILENAME)) { XmlSerializer xs = new XmlSerializer(ms.GetType()); xs.Serialize(tw, ms); } }