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