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