public static void LoadSoundEvents() { if (Constants.XSettings != null) { foreach (var xElement in Constants.XSettings.Descendants() .Elements("Event")) { var xRegEx = (string) xElement.Attribute("Key"); var xValue = (string) xElement.Element("Value"); var xSound = (string) xElement.Element("Sound"); var xDelay = (string) xElement.Element("Delay"); var xCategory = (string)xElement.Element("Category"); if (String.IsNullOrWhiteSpace(xRegEx)) { continue; } xSound = String.IsNullOrWhiteSpace(xSound) ? "aruba.wav" : String.IsNullOrWhiteSpace(xValue) ? xSound : xValue; xCategory = String.IsNullOrWhiteSpace(xCategory) ? "Miscellaneous" : xCategory; var soundEvent = new SoundEvent { Sound = xSound, Delay = 0, RegEx = xRegEx, Category = xCategory }; int result; if (Int32.TryParse(xDelay, out result)) { soundEvent.Delay = result; } var found = PluginViewModel.Instance.Events.Any(se => se.RegEx == soundEvent.RegEx); if (!found) { PluginViewModel.Instance.Events.Add(soundEvent); } } } }
/// <summary> /// </summary> private static void AddEvent() { var selectedKey = ""; try { if (MainView.View.Events.SelectedItems.Count == 1) { selectedKey = GetValueBySelectedItem(MainView.View.Events, "RegEx"); } } catch (Exception ex) { Logging.Log(LogManager.GetCurrentClassLogger(), "", ex); } if (MainView.View.TSound.Text.Trim() == "" || MainView.View.TDelay.Text.Trim() == "" || MainView.View.TRegEx.Text.Trim() == "") { return; } if (MainView.View.TCategory.Text.Trim() == "") { MainView.View.TCategory.Text = PluginViewModel.Instance.Locale["event_MiscellaneousLabel"]; } if (Regex.IsMatch(MainView.View.TDelay.Text, @"[^0-9]+")) { var popupContent = new PopupContent(); popupContent.PluginName = Plugin.PName; popupContent.Title = PluginViewModel.Instance.Locale["app_WarningMessage"]; popupContent.Message = "Delay can only be numeric."; Plugin.PHost.PopupMessage(Plugin.PName, popupContent); return; } var soundEvent = new SoundEvent { Sound = MainView.View.TSound.Text, Delay = 0, RegEx = MainView.View.TRegEx.Text, Category = MainView.View.TCategory.Text, Enabled = true }; int result; if (Int32.TryParse(MainView.View.TDelay.Text, out result)) { soundEvent.Delay = result; } if (String.IsNullOrWhiteSpace(selectedKey)) { var found = PluginViewModel.Instance.Events.Any(se => se.RegEx == soundEvent.RegEx); if (!found) { PluginViewModel.Instance.Events.Add(soundEvent); } } else { var index = PluginViewModel.Instance.Events.TakeWhile(se => se.RegEx != selectedKey) .Count(); PluginViewModel.Instance.Events[index] = soundEvent; } MainView.View.Events.UnselectAll(); MainView.View.TRegEx.Text = ""; }