예제 #1
0
        protected override void OnExecute(IModelData target)
        {
            float          param1 = ToolParser.FloatParse(Attributes[ERuleKey.Param1]);
            float          param2 = ToolParser.FloatParse(Attributes[ERuleKey.Param2]);
            ECompareSymbol symbol = (ECompareSymbol)Enum.Parse(typeof(ECompareSymbol), Attributes[ERuleKey.CompareSymbol]);

            if (Compare(symbol, param1, param2))
            {
                DoRoute(target, ERuleKey.RouteIf);
            }
            else
            {
                DoRoute(target, ERuleKey.RouteElse);
            }
        }
예제 #2
0
        private bool Compare(ECompareSymbol symbol, float param1, float param2)
        {
            switch (symbol)
            {
            case ECompareSymbol.Equals:
                return(param1.Equals(param2));

            case ECompareSymbol.NotEquals:
                return(!param1.Equals(param2));

            case ECompareSymbol.LessThan:
                return(param1 < param2);

            case ECompareSymbol.LessThanEquals:
                return(param1 <= param2);

            case ECompareSymbol.MoreThan:
                return(param1 > param2);

            case ECompareSymbol.MoreThanEquals:
                return(param1 >= param2);
            }
            return(false);
        }