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

            if ((effectiveType == typeof(string)) || (effectiveType == typeof(Guid)))
            {
                return(ExpressionExtensions.GetAssignExpressionString(filterOperator, left, right, propertyType));
            }

            if (effectiveType.IsNumericType())
            {
                return(ExpressionExtensions.GetAssignExpressionNumeric(filterOperator, left, right, propertyType));
            }

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

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

            if (effectiveType.IsEnum())
            {
                return(ExpressionExtensions.GetAssignExpressionEnum(filterOperator, left, right, propertyType));
            }

            return(null);
        }