private static string FormatDataItemType(Instance.DataItemValue value) { if (!string.IsNullOrEmpty(value.Type)) { return(value.Type.ToLower()); } return(null); }
private static bool FindTrigger(Instance.DataItemValue value, Trigger trigger) { if (trigger.Link != null) { if (trigger.LinkType == TriggerLinkType.Type) { return(FormatDataItemType(value) == trigger.Link.ToLower()); } else { return(value.Id == trigger.Link); } } return(false); }
public bool Process(Instance.DataItemValue instanceValue) { if (Modifier == TriggerModifier.NOT) { if (Tools.GetValue(instanceValue, "Value") != Tools.GetValue(this, "Value")) { return(true); } } else if (Modifier == TriggerModifier.GREATER_THAN) { double trigger_val = double.MinValue; double val = double.MinValue; if (double.TryParse(instanceValue.Value, out val) && double.TryParse(Value, out trigger_val)) { if (val > trigger_val) { return(true); } } } else if (Modifier == TriggerModifier.LESS_THAN) { double trigger_val = double.MinValue; double val = double.MinValue; if (double.TryParse(instanceValue.Value, out val) && double.TryParse(Value, out trigger_val)) { if (val < trigger_val) { return(true); } } } else if (Modifier == TriggerModifier.CONTAINS) { if (Regex.IsMatch(instanceValue.Value, "^(?=.*" + Value + ").+$", RegexOptions.IgnoreCase)) { return(true); } } else if (Modifier == TriggerModifier.CONTAINS_MATCH_CASE) { if (Regex.IsMatch(instanceValue.Value, "^(?=.*" + Value + ").+$")) { return(true); } } else if (Modifier == TriggerModifier.CONTAINS_WHOLE_WORD) { if (Regex.IsMatch(instanceValue.Value, Value + "\\b", RegexOptions.IgnoreCase)) { return(true); } } else if (Modifier == TriggerModifier.CONTAINS_WHOLE_WORD_MATCH_CASE) { if (Regex.IsMatch(instanceValue.Value, Value + "\\b")) { return(true); } } else { if (Tools.GetValue(instanceValue, "Value") == Tools.GetValue(this, "Value")) { return(true); } } return(false); }