示例#1
0
        private Expression GetAssignExpression(Type propertyType, FilterOperator filterOperator, Expression left, ConstantExpression right)
        {
            var effectiveType = propertyType.GetEffectiveType();

            if (effectiveType == typeof(string))
            {
                return(StringExpressionFactory.Create(filterOperator, left, right, propertyType));
            }

            if (effectiveType.IsNumericType())
            {
                return(NumericExpressionFactory.Create(filterOperator, left, right, propertyType));
            }

            if (effectiveType == typeof(bool))
            {
                return(BooleanExpressionFactory.Create(filterOperator, left, right, propertyType));
            }

            if (effectiveType == typeof(DateTime))
            {
                return(DateTimeExpressionFactory.Create(filterOperator, left, right, propertyType));
            }

            if (effectiveType.IsEnum())
            {
                return(EnumExpressionFactory.Create(filterOperator, left, right, propertyType));
            }

            return(null);
        }
 public void Setup()
 {
     _factory = new EnumExpressionFactory();
 }