Example #1
0
        public override string ToString()
        {
            var sb = new StringBuilder();

            var newExprBody = lambda.Body as NewExpression;

            if (newExprBody != null)
            {
                foreach (
                    var arg in
                        newExprBody.Arguments.Zip(
                            newExprBody.Members, (e, p) => new {p.Name, Expr = e}))
                {
                    if (sb.Length > 0)
                        sb.Append(',');
                    var argLambda = Expression.Lambda(arg.Expr, lambda.Parameters);
                    var predicateBuilder = new QueryPredicateBuilder(argLambda);
                    sb.Append(predicateBuilder);
                    sb.Append(" as ");
                    sb.Append(arg.Name);
                }
            }
            else
            {
                var predicateBuilder = new QueryPredicateBuilder(lambda);
                sb.Append(predicateBuilder);
                sb.Append(" as this");
            }

            return sb.ToString();
        }
Example #2
0
        public void AppendExpressionParameter(string queryKey, LambdaExpression predicate,
                                              Func<string, string> transform = null)
        {
            var filterString = new QueryPredicateBuilder(predicate).ToString();

            if (transform != null)
                filterString = transform(filterString);

            AppendQueryParameterStart(queryKey);
            AppendEncodedQueryValue(filterString);
        }