public static Task <T> Run <T>(
     this IConnection connection,
     IQueryableValue <T> expression,
     CancellationToken cancellationToken = default)
 {
     return(connection.Run(expression.Compile(), cancellationToken: cancellationToken));
 }
Ejemplo n.º 2
0
 public Task <T> Run <T>(
     IQueryableValue <T> query,
     Dictionary <string, object> variables = null,
     bool refresh           = false,
     TimeSpan?cacheDuration = null,
     string regionName      = null,
     CancellationToken cancellationToken = default)
 {
     return(Run(query.Compile(), variables, refresh, cacheDuration, regionName, cancellationToken));
 }
Ejemplo n.º 3
0
 public static IQueryableList <TResult> Select <TValue, TResult>(
     this IQueryableValue <TValue> source,
     Expression <Func <TValue, IQueryableList <TResult> > > selector)
     where TValue : IQueryableValue
 {
     return(new QueryableList <TResult>(
                Expression.Call(
                    null,
                    GetMethodInfoOf(() => Select(
                                        default(IQueryableValue <TValue>),
                                        default(Expression <Func <TValue, IQueryableList <TResult> > >))),
                    new Expression[] { source.Expression, Expression.Quote(selector) })));
 }
Ejemplo n.º 4
0
 public static IQueryableValue <TResult> Select <TValue, TResult>(
     this IQueryableValue <TValue> source,
     Fragment <TValue, TResult> fragment)
     where TValue : IQueryableValue
 {
     return(new QueryableValue <TResult>(
                Expression.Call(
                    null,
                    GetMethodInfoOf(() => Select(
                                        default(IQueryableValue <TValue>),
                                        default(Fragment <TValue, TResult>))),
                    new Expression[] { source.Expression, Expression.Constant(fragment) })));
 }
Ejemplo n.º 5
0
        public ICompiledQuery <TResult> Build <TResult>(IQueryableValue <TResult> query)
        {
            Initialize();

            var rewritten = Visit(query.Expression);
            var lambda    = Expression.Lambda <Func <JObject, TResult> >(
                rewritten.AddCast(typeof(TResult)),
                RootDataParameter);
            var master = new SimpleQuery <TResult>(root, lambda);

            if (subqueries.Count == 0)
            {
                return(master);
            }
            else
            {
                return(new PagedQuery <TResult>(master, subqueries));
            }
        }
Ejemplo n.º 6
0
 public static ICompiledQuery <T> Compile <T>(this IQueryableValue <T> expression)
 {
     return(new QueryBuilder().Build(expression));
 }
Ejemplo n.º 7
0
 public static TValue SingleOrDefault <TValue>(this IQueryableValue <TValue> source)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 8
0
 public QueryableTranslator(IQueryableValue queryableValue)
 {
     _queryableValue = queryableValue ?? throw new ArgumentNullException(nameof(queryableValue));
 }
Ejemplo n.º 9
0
 protected Task <T> Run <T>(IQueryableValue <T> expression)
 {
     return(_connection.Run(expression));
 }
        public static void AssertExpressionQueryEqual <T>(string expectedString, IQueryableValue <T> actual)
        {
            var actualCompiledQuery = actual.Compile();

            AssertCompiledQueryExpressionEqual(expectedString, actualCompiledQuery);
        }
Ejemplo n.º 11
0
 public static Task <T> Run <T>(
     this IConnection connection,
     IQueryableValue <T> expression)
 {
     return(connection.Run(expression.Compile()));
 }