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 override RuleCondition <T> GetRuleCondition <T>(Type type, BaseAdaptiveConditionBase <T> adaptiveCondition, T ruleContext) { Assert.ArgumentNotNull(type, "type"); var selectorConfig = this.MacroConfiguration.GetMacroSelectorConfig(type); Assert.IsNotNull(selectorConfig, "selectorConfig"); var selector = selectorConfig.GetConditionSelector(type); if (selector == null) { return(null); } var condition = selector.GetCondition <T>(type, adaptiveCondition, ruleContext); return(condition); }
public override RuleCondition<T> GetCondition<T>(Type type, BaseAdaptiveConditionBase<T> adaptiveCondition, T ruleContext) { var condition = new NumberCompareCondition<T>(); var left = adaptiveCondition.GetLeftValue(ruleContext); if (left != null) { condition.LeftValue = float.Parse(left.ToString()); } var right = adaptiveCondition.GetRightValue(ruleContext); if (right != null) { condition.RightValue= float.Parse(right.ToString()); } condition.OperatorId = adaptiveCondition.Operator.ToString(); return condition; }
public override RuleCondition <T> GetCondition <T>(Type type, BaseAdaptiveConditionBase <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); }
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); }
public override Expression <Func <IndexedContact, bool> > GetRulePredicate <T>(Type type, BaseAdaptiveConditionBase <T> adaptiveCondition, T ruleContext) { Assert.ArgumentNotNull(type, "type"); var selectorConfig = this.MacroConfiguration.GetMacroSelectorConfig(type); Assert.IsNotNull(selectorConfig, "selectorConfig"); var selector = selectorConfig.GetConditionSelector(type); if (selector == null) { return(null); } return(selector.GetPredicate <T>(type, adaptiveCondition, ruleContext)); }
public override Expression<Func<IndexedContact, bool>> GetPredicate<T>(Type type, BaseAdaptiveConditionBase<T> adaptiveCondition, T ruleContext) { var leftFacetName = adaptiveCondition.GetLeftValue(ruleContext).ToString(); object right = adaptiveCondition.GetRightValue(ruleContext); if (right == null) return null; float rightInt; if (!float.TryParse(right.ToString(), out rightInt)) { return null; } var conditionOperator = ConditionUtility.GetConditionOperatorById(adaptiveCondition.Operator.ToString()); return GetCompareExpression<float>(conditionOperator, c => (float)c[(ObjectIndexerKey)leftFacetName], rightInt); }
public abstract Expression <Func <IndexedContact, bool> > GetPredicate <T>(Type type, BaseAdaptiveConditionBase <T> adaptiveCondition, T ruleContext) where T : RuleContext;
public abstract RuleCondition <T> GetCondition <T>(Type type, BaseAdaptiveConditionBase <T> adaptiveCondition, T ruleContext) where T : RuleContext;
public override Expression <Func <IndexedContact, bool> > GetPredicate <T>(Type type, BaseAdaptiveConditionBase <T> adaptiveCondition, T ruleContext) { var leftFacetName = adaptiveCondition.GetLeftValue(ruleContext).ToString(); var right = adaptiveCondition.GetRightValue(ruleContext).ToString(); if (right == null) { return(null); } if (adaptiveCondition.Operator == Sitecore.Strategy.Adaptive.Items.ItemIDs.BooleanOperatorTrue) { adaptiveCondition.Operator = Sitecore.Strategy.Adaptive.Items.ItemIDs.StringOperatorTrue; /*return StringConditionOperator.Contains.Compare<IndexedContact>( * c => (string) c[(ObjectIndexerKey)leftFacetName], right);*/ } else if (adaptiveCondition.Operator == Sitecore.Strategy.Adaptive.Items.ItemIDs.BooleanOperatorFalse) { adaptiveCondition.Operator = Sitecore.Strategy.Adaptive.Items.ItemIDs.StringOperatorFalse; /*return StringConditionOperator.Contains.Compare<IndexedContact>( * c => (string)c[(ObjectIndexerKey)leftFacetName], right);*/ } var conditionOperator = ConditionUtility.GetStringConditionOperatorById(adaptiveCondition.Operator.ToString()); return(conditionOperator.Compare <IndexedContact>(c => (string)c[(ObjectIndexerKey)leftFacetName], right)); }
public override Expression <Func <IndexedContact, bool> > GetPredicate <T>(Type type, BaseAdaptiveConditionBase <T> adaptiveCondition, T ruleContext) { var leftFacetName = adaptiveCondition.GetLeftValue(ruleContext).ToString(); object right = adaptiveCondition.GetRightValue(ruleContext); if (right == null) { return(null); } DateTime rightDateTime; rightDateTime = DateUtil.ParseDateTime(right.ToString(), DateTime.MinValue); if (rightDateTime == DateTime.MinValue) { return(null); } var conditionOperator = ConditionUtility.GetConditionOperatorById(adaptiveCondition.Operator.ToString()); return(GetCompareExpression <DateTime>(conditionOperator, c => (DateTime)c[(ObjectIndexerKey)leftFacetName], rightDateTime)); }