Пример #1
0
 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));
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
 }
Пример #8
0
 /// <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));
 }
Пример #9
0
 public AsyncQueryProvider(Type queryableType, [NotNull] IQueryParser queryParser, [NotNull] IAsyncQueryExecutor executor) : base(queryableType, queryParser, executor)
 {
 }
Пример #10
0
 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);