public bool ChangeRule(int ruleNumber, DeviceRule newRule) { var ruleToChange = Rules.Where((x) => x.RuleNumber == ruleNumber).FirstOrDefault(); if (newRule != null && ruleToChange != null) { newRule.RuleNumber = ruleNumber; int indx = Rules.IndexOf(ruleToChange); Rules[indx] = newRule; UpdateListRulesAudioClip(); UpdateWhichRuleAudioClip(); return(RulesTableMgr.UpdateRules(RulesetId, Rules)); } return(false); }
public int CheckForConflicts(DeviceRule deviceRule) { foreach (var rule in Rules) { if (rule.TriggerClip.StateText.Equals(deviceRule.TriggerClip.StateText) && !rule.ActionClip.StateText.Equals(deviceRule.ActionClip.StateText)) { var audioClip = AudioClips.Where((x) => x.Label.Equals("Rule conflicts with another rule")).FirstOrDefault(); if (audioClip != null) { RuleClipGenerator.UpdateConflictWarning(audioClip, rule.RuleNumber); } return(rule.RuleNumber); } } return(-1); }
public bool AddRule(DeviceRule rule) { if (rule.TriggerClip != null && rule.ActionClip != null) { var existingRule = Rules.Where((x) => x.TriggerClip.StateText.Equals(rule.TriggerClip.StateText) && x.ActionClip.StateText.Equals(rule.ActionClip.StateText) ).FirstOrDefault(); if (rule != null && existingRule == null) { Rules.Add(rule); rule.RuleNumber = Rules.Count; UpdateListRulesAudioClip(); UpdateWhichRuleAudioClip(); return(RulesTableMgr.AddRule(RulesetId, rule)); } } return(false); }