示例#1
0
        private static string FormatDataItemType(Instance.DataItemValue value)
        {
            if (!string.IsNullOrEmpty(value.Type))
            {
                return(value.Type.ToLower());
            }

            return(null);
        }
示例#2
0
        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);
        }