private Expression HandleContains(StringOperatorCondition <T> p_Condition, ConditionContext p_Context) { return((Expression)Expression.Call(this.GetFieldExpression(p_Context.ParameterExpression, this.m_Condition), "Contains", (Type[])null, new Expression[1] { this.GetConstantExpression(p_Context.ParameterExpression, this.m_Condition) })); }
private Expression HandleEqualsCaseInsensitive(StringOperatorCondition <T> p_Condition, ConditionContext p_Context) { return((Expression)Expression.Call(this.GetFieldExpression(p_Context.ParameterExpression, this.m_Condition), "Equals", (Type[])null, new Expression[2] { this.GetConstantExpression(p_Context.ParameterExpression, this.m_Condition), (Expression)Expression.Constant((object)StringComparison.OrdinalIgnoreCase) })); }
private Expression HandleMatchRegex(StringOperatorCondition <T> p_Condition, ConditionContext p_Context) { return((Expression)Expression.Call((Expression)null, typeof(MethodExtensions).GetMethod("Matches", new Type[2] { typeof(string), typeof(string) }), this.GetFieldExpression(p_Context.ParameterExpression, this.m_Condition), this.GetConstantExpression(p_Context.ParameterExpression, this.m_Condition))); }
public override Expression GetQueryExpression(ConditionContext p_Context) { StringOperatorCondition <T> p_Condition = this.Condition as StringOperatorCondition <T>; Assert.IsNotNull((object)p_Condition, "Condition has the wrong type. Type \"{0}\" is expected.", new object[1] { (object)typeof(StringOperatorCondition <T>).FullName }); Expression expression; switch (p_Condition.OperatorId) { case "{2E67477C-440C-4BCA-A358-3D29AED89F47}": expression = this.HandleContains(p_Condition, p_Context); break; case "{22E1F05F-A17A-4D0C-B376-6F7661500F03}": expression = this.HandleEndsWith(p_Condition, p_Context); break; case "{10537C58-1684-4CAB-B4C0-40C10907CE31}": expression = this.HandleEquals(p_Condition, p_Context); break; case "{537244C2-3A3F-4B81-A6ED-02AF494C0563}": expression = this.HandleEqualsCaseInsensitive(p_Condition, p_Context); break; case "{F8641C26-EE27-483C-9FEA-35529ECC8541}": expression = this.HandleMatchRegex(p_Condition, p_Context); break; case "{A6AC5A6B-F409-48B0-ACE7-C3E8C5EC6406}": expression = this.HandleNotEqual(p_Condition, p_Context); break; case "{6A7294DF-ECAE-4D5F-A8D2-C69CB1161C09}": expression = this.HandleNotEqualCaseInsensitive(p_Condition, p_Context); break; case "{FDD7C6B1-622A-4362-9CFF-DDE9866C68EA}": expression = this.HandleStartsWith(p_Condition, p_Context); break; default: StringConditionWrapper <T, TCondition> .s_Logger.Debug(string.Format("Unknown operator id \"{0}\". Returning true expression.", (object)p_Condition.OperatorId)); expression = (Expression)Expression.Constant((object)true); break; } return(expression); }
private Expression HandleEquals(StringOperatorCondition <T> p_Condition, ConditionContext p_Context) { return((Expression)Expression.Equal(this.GetFieldExpression(p_Context.ParameterExpression, this.m_Condition), this.GetConstantExpression(p_Context.ParameterExpression, this.m_Condition))); }