public override RuleCondition <T> GetCondition <T>(Type type, AdaptiveConditionBase <T> adaptiveCondition, T ruleContext)
        {
            var condition = new StringCompareCondition <T>();
            var left      = adaptiveCondition.GetLeftValue(ruleContext);

            if (left != null)
            {
                condition.LeftValue = left.ToString();
            }
            var right = adaptiveCondition.GetRightValue(ruleContext);

            if (right != null)
            {
                condition.RightValue = right.ToString();
            }
            if (adaptiveCondition.Operator == Sitecore.Strategy.Adaptive.Items.ItemIDs.BooleanOperatorTrue)
            {
                adaptiveCondition.Operator = Sitecore.Strategy.Adaptive.Items.ItemIDs.StringOperatorTrue;
            }
            else if (adaptiveCondition.Operator == Sitecore.Strategy.Adaptive.Items.ItemIDs.BooleanOperatorFalse)
            {
                adaptiveCondition.Operator = Sitecore.Strategy.Adaptive.Items.ItemIDs.StringOperatorFalse;
            }
            condition.OperatorId = adaptiveCondition.Operator.ToString();
            return(condition);
        }
示例#2
0
        public override RuleCondition <T> GetCondition <T>(Type type, AdaptiveConditionBase <T> adaptiveCondition, T ruleContext)
        {
            var condition = new NumberCompareCondition <T>();
            var left      = adaptiveCondition.GetLeftValue(ruleContext);

            if (left != null)
            {
                condition.LeftValue = double.Parse(left.ToString());
            }
            var right = adaptiveCondition.GetRightValue(ruleContext);

            if (right != null)
            {
                condition.RightValue = double.Parse(right.ToString());
            }
            condition.OperatorId = adaptiveCondition.Operator.ToString();
            return(condition);
        }
        public override RuleCondition <T> GetCondition <T>(Type type, AdaptiveConditionBase <T> adaptiveCondition, T ruleContext)
        {
            var condition = new DateTimeCompareCondition <T>();
            var left      = adaptiveCondition.GetLeftValue(ruleContext);

            if (left != null)
            {
                condition.LeftValue = DateUtil.ParseDateTime(left.ToString(), DateTime.MinValue);
            }
            var right = adaptiveCondition.GetRightValue(ruleContext);

            if (right != null)
            {
                condition.RightValue = DateUtil.ParseDateTime(right.ToString(), DateTime.MinValue);
            }
            condition.OperatorId = adaptiveCondition.Operator.ToString();
            return(condition);
        }