public QueryableWithAsyncExecutor(IAsyncQueryExecutor executor, IQueryable original) { Executor = executor; _original = original; if (original.Provider is AsyncExecutorQueryProvider aeq) { Provider = aeq; } else { Provider = new AsyncExecutorQueryProvider(original.Provider, Executor); } }
/// <inheritdoc /> public override Task <T> ExecuteQueryModelAsync <T>(QueryModel queryModel, IAsyncQueryExecutor executor, CancellationToken cancellationToken = default) { if (queryModel == null) { throw new ArgumentNullException(nameof(queryModel)); } if (executor == null) { throw new ArgumentNullException(nameof(executor)); } return(executor.ExecuteScalarAsync <T>(queryModel, cancellationToken)); }
public bool TryHandle(QueryContext query) { _activeQueryExecutor = _queryExecutors.FirstOrDefault(qe => { try { return(qe.TryHandle(query)); } catch (Exception ex) { _log.Error($"Error while calling 'TryHandle' on query executor '{qe}': '{ex.Message}'", ex); } return(false); }); _log.Info($"Term '{query}', selected query executor: {_activeQueryExecutor}"); return(_activeQueryExecutor != null); }
internal virtual IQueryable <T> CreateQueryable <T>(string bucketName, IAsyncQueryExecutor queryExecutor) { var mockCluster = new Mock <ICluster>(); mockCluster .Setup(p => p.ClusterServices) .Returns(ServiceProvider); var mockBucket = new Mock <IBucket>(); mockBucket.SetupGet(e => e.Name).Returns(bucketName); mockBucket.SetupGet(e => e.Cluster).Returns(mockCluster.Object); var mockCollection = new Mock <ICouchbaseCollection>(); mockCollection .SetupGet(p => p.Scope.Bucket) .Returns(mockBucket.Object); return(new CollectionQueryable <T>(mockCollection.Object, QueryParserHelper.CreateQueryParser(mockCluster.Object), queryExecutor)); }
public AsyncExecutorQueryProvider(IQueryProvider original, IAsyncQueryExecutor executor) { _original = original; Executor = executor; }
public ClusterQueryProvider(IQueryParser queryParser, IAsyncQueryExecutor executor) : base(queryParser, executor) { }
private static object ExecuteCollectionQueryModel <T>(QueryModel queryModel, IAsyncQueryExecutor executor, CancellationToken cancel) { ArgumentUtility.CheckNotNull("queryModel", queryModel); ArgumentUtility.CheckNotNull("executor", executor); return(executor.ExecuteCollectionAsync <T>(queryModel, cancel)); }
/// <summary> /// Initializes a new instance of the <see cref="CollectionQueryable{T}"/> class. /// </summary> /// <param name="collection">The collection.</param> /// <param name="queryParser">The query parser.</param> /// <param name="executor">The executor.</param> /// <exception cref="ArgumentNullException"><paramref name="collection" /> is <see langword="null" />.</exception> public CollectionQueryable(ICouchbaseCollection collection, IQueryParser queryParser, IAsyncQueryExecutor executor) : base(new ClusterQueryProvider(queryParser, executor)) { _collection = collection ?? throw new ArgumentNullException(nameof(collection)); }
public AsyncQueryProvider(Type queryableType, [NotNull] IQueryParser queryParser, [NotNull] IAsyncQueryExecutor executor) : base(queryableType, queryParser, executor) { }
internal SpEntityQueryable(IQueryParser queryParser, IAsyncQueryExecutor executor) : base(new AsyncQueryProvider <TEntity, ISpEntryDataContext>(typeof(SpEntityQueryable <>), queryParser, executor)) { }
public abstract Task <T> ExecuteQueryModelAsync <T>(QueryModel queryModel, IAsyncQueryExecutor executor, CancellationToken cancellationToken = default);