public static bool LoadTriggersFromDB() { DataTable dataTable = TriggersTableMgr.GetTriggers(); Triggers.Clear(); string[] propsList = { "Category", "Label", "DeviceName", "TimeTrigger", "TriggerText", "Recurrence", "TriggerAudioFile", "TriggerAudioFileExists", "Tooltip" }; if (dataTable != null) { bool allOK = true; foreach (var prop in propsList) { if (!dataTable.Columns.Contains(prop)) { Logger.AddLogEntry(LogCategory.ERROR, String.Format("LoadTriggersFromDB: {0} not found.", prop)); allOK = false; } } if (allOK) { foreach (DataRow dr in dataTable.Rows) { string timeTriggerStr = dr["TimeTrigger"].ToString(); string triggerAudioFileExistsStr = dr["TimeTrigger"].ToString(); if (Int32.TryParse(timeTriggerStr, out int timeTrigger) && Int32.TryParse(triggerAudioFileExistsStr, out int triggerAudioFileExists)) { Triggers.Add(new DeviceTrigger() { Category = dr["Category"].ToString(), Label = dr["Label"].ToString(), DeviceName = dr["DeviceName"].ToString(), TimeTrigger = (timeTrigger == 1), TriggerText = dr["TriggerText"].ToString(), Recurrence = dr["Recurrence"].ToString(), TriggerAudioFile = dr["TriggerAudioFile"].ToString(), TriggerAudioFileExists = (triggerAudioFileExists == 1), Tooltip = dr["Tooltip"].ToString(), }); } else { Logger.AddLogEntry(LogCategory.ERROR, String.Format("LoadTriggersFromDB: Could not parse entry for timeTriggerStr {0}", timeTriggerStr)); } } return(true); } else { return(false); } } return(false); }
public static bool DeleteTrigger(string label, out string outcome) { var trigger = Triggers.FirstOrDefault(x => x.Label.Equals(label)); if (trigger != null) { Triggers.Remove(trigger); if (TriggersTableMgr.DeleteTrigger(label)) { Logger.AddLogEntry(LogCategory.INFO, "Deleted DeviceTrigger: " + label); outcome = "DeviceTrigger deleted"; return(true); } else { outcome = "Error deleting DeviceTrigger from database"; return(false); } } outcome = "DeviceTrigger name \'" + label + "\' not found."; return(false); }
public static bool AddTrigger(DeviceTrigger newTrigger, out string outcome, bool updateDB = true) { if (Triggers.FirstOrDefault(x => x.Label.Equals(newTrigger.Label)) == null) { newTrigger.TriggerAudioFileExists = File.Exists(Path.Combine(DirectoryMgr.AudioClipsDirectory, newTrigger.TriggerAudioFile + ".mp3")); Triggers.Add(newTrigger); if (updateDB) { if (TriggersTableMgr.AddTrigger(newTrigger)) { outcome = "DeviceTrigger added"; return(true); } else { outcome = "Error adding DeviceTrigger to database"; Logger.AddLogEntry(LogCategory.ERROR, "Error adding DeviceTrigger to database: " + newTrigger.Label); return(false); } } } outcome = "DeviceTrigger name \'" + newTrigger.Label + "\' already exits.\nPlease choose another name."; return(false); }
public static bool UpdateTriggersToDB() { return(TriggersTableMgr.UpdateTriggers(Triggers)); }