private static string GetConditionString <T>(FilterRule rule, IFilterOperators filterOperators, ref int parameterNumber) { if (rule.Operator == filterOperators.EqualOperator) { return(String.Format("x.{0} == @{1}", rule.PropertyName, parameterNumber++)); } else if (rule.Operator == filterOperators.NotEqualOperator) { return(String.Format("x.{0} != @{1}", rule.PropertyName, parameterNumber++)); } else if (rule.Operator == filterOperators.Lesser) { return(String.Format("x.{0} < @{1}", rule.PropertyName, parameterNumber++)); } else if (rule.Operator == filterOperators.Greater) { return(String.Format("x.{0} > @{1}", rule.PropertyName, parameterNumber++)); } else if (rule.Operator == filterOperators.LessOrEqualOperator) { return(String.Format("x.{0} <= @{1}", rule.PropertyName, parameterNumber++)); } else if (rule.Operator == filterOperators.GreaterOrEqualOperator) { return(String.Format("x.{0} >= @{1}", rule.PropertyName, parameterNumber++)); } else if (rule.Operator == filterOperators.ContainsOperator) { return(String.Format("x.{0}.Contains(@{1})", rule.PropertyName, parameterNumber++)); } else if (rule.Operator == filterOperators.UserDefinedOperator) { return(String.Format("x.{0}", rule.PropertyName)); } else { throw new ArgumentException("Unknown filter operator"); } }
public FilterWithOperators(Filter filter, IFilterOperators filterOperators) { Filter = filter; FilterOperators = filterOperators; }