Ejemplo n.º 1
0
        public override RuleCondition <T> GetCondition <T>(Type type, BaseAdaptiveConditionBase <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);
        }
Ejemplo n.º 2
0
        public StringCondition(StringQueryField Field, StringCompareCondition Condition, string Value)
        {            
            if (string.IsNullOrWhiteSpace(Value))
            {
                queryPart = "";
                return;
            }
            Value = Value.Replace("'", "''");

            switch (Condition)
            {
                case StringCompareCondition.BeginsWith:
                    queryPart = $"{Field.GetQueryPart()} like '{Value}%'";
                    break;
                case StringCompareCondition.Contains:
                    queryPart = $"{Field.GetQueryPart()} like '%{Value}%'";
                    break;
                case StringCompareCondition.EndsWith:
                    queryPart = $"{Field.GetQueryPart()} like '%{Value}'";
                    break;
            }
        }
        public override RuleCondition <T> GetCondition <T>(Type type, BaseAdaptiveConditionBase <T> adaptiveCondition, T ruleContext)
        {
            var condition = new StringCompareCondition <T>();

            if (adaptiveCondition == null)
            {
                Log.Error($"{nameof(adaptiveCondition)} cannot be null in GetCondition. For type: '{type}'", this);
                throw new NullReferenceException($"{nameof(adaptiveCondition)} cannot be null");
            }
            if (ruleContext == null)
            {
                Log.Error($"{nameof(ruleContext)} cannot be null in GetCondition. For type: '{type}'", this);
                throw new NullReferenceException($"{nameof(ruleContext)} cannot be null");
            }

            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);
        }