public OrderByQueryPartitionRangePageAsyncEnumerator( IQueryDataSource queryDataSource, SqlQuerySpec sqlQuerySpec, FeedRangeInternal feedRange, PartitionKey?partitionKey, int pageSize, string filter, CancellationToken cancellationToken, QueryState state = default) : base(feedRange, cancellationToken, state) { this.StartOfPageState = state; this.innerEnumerator = new InnerEnumerator( queryDataSource, sqlQuerySpec, feedRange, partitionKey, pageSize, filter, cancellationToken, state); this.bufferedEnumerator = new BufferedPartitionRangePageAsyncEnumerator <OrderByQueryPage, QueryState>( this.innerEnumerator, cancellationToken); }
private static CreatePartitionRangePageAsyncEnumerator <QueryPage, QueryState> MakeCreateFunction( IQueryDataSource queryDataSource, SqlQuerySpec sqlQuerySpec, QueryPaginationOptions queryPaginationOptions, Cosmos.PartitionKey?partitionKey, CancellationToken cancellationToken) => (FeedRangeState <QueryState> feedRangeState) => new QueryPartitionRangePageAsyncEnumerator( queryDataSource, sqlQuerySpec, feedRangeState, partitionKey, queryPaginationOptions, cancellationToken);
private static CreatePartitionRangePageAsyncEnumerator <QueryPage, QueryState> MakeCreateFunction( IQueryDataSource queryDataSource, SqlQuerySpec sqlQuerySpec, int pageSize, Cosmos.PartitionKey?partitionKey, CancellationToken cancellationToken) => (FeedRangeInternal range, QueryState state) => new QueryPartitionRangePageAsyncEnumerator( queryDataSource, sqlQuerySpec, range, partitionKey, pageSize, cancellationToken: cancellationToken, state);
public QueryPartitionRangePageAsyncEnumerator( IQueryDataSource queryDataSource, SqlQuerySpec sqlQuerySpec, PartitionKeyRange feedRange, int pageSize, CancellationToken cancellationToken, QueryState state = default) : base(feedRange, cancellationToken, state) { this.queryDataSource = queryDataSource ?? throw new ArgumentNullException(nameof(queryDataSource)); this.sqlQuerySpec = sqlQuerySpec ?? throw new ArgumentNullException(nameof(sqlQuerySpec)); this.pageSize = pageSize; }
public QueryPartitionRangePageAsyncEnumerator( IQueryDataSource queryDataSource, SqlQuerySpec sqlQuerySpec, FeedRangeState <QueryState> feedRangeState, Cosmos.PartitionKey?partitionKey, QueryPaginationOptions queryPaginationOptions, CancellationToken cancellationToken) : base(feedRangeState, cancellationToken) { this.queryDataSource = queryDataSource ?? throw new ArgumentNullException(nameof(queryDataSource)); this.sqlQuerySpec = sqlQuerySpec ?? throw new ArgumentNullException(nameof(sqlQuerySpec)); this.queryPaginationOptions = queryPaginationOptions; this.partitionKey = partitionKey; }
public InnerEnumerator( IQueryDataSource queryDataSource, SqlQuerySpec sqlQuerySpec, FeedRangeState <QueryState> feedRangeState, PartitionKey?partitionKey, QueryPaginationOptions queryPaginationOptions, string filter, CancellationToken cancellationToken) : base(feedRangeState, cancellationToken) { this.queryDataSource = queryDataSource ?? throw new ArgumentNullException(nameof(queryDataSource)); this.SqlQuerySpec = sqlQuerySpec ?? throw new ArgumentNullException(nameof(sqlQuerySpec)); this.PartitionKey = partitionKey; this.queryPaginationOptions = queryPaginationOptions ?? QueryPaginationOptions.Default; this.Filter = filter; }
private IQuery <T, TParameters> Resolve <TParameters>(IQueryDataSource dataSource) { try { var handler = _resolver.Resolve <T, TParameters>(dataSource); return(handler); } catch (Exception e) { if (typeof(TParameters) == typeof(LinqToEntitiesPredicateParameters)) { throw new QueryNotFoundException(@"Не удалось найти обработчки запросов Linq to Entities. Убедитесь, что msc.Fx включена в список сборок, доступных для IQueryResolver.", e); } throw new QueryNotFoundException($"Не удалось найти реализацию IQuery<{typeof(T).ToString()}, {typeof(TParameters).ToString()}>.", e); } }
public InnerEnumerator( IQueryDataSource queryDataSource, SqlQuerySpec sqlQuerySpec, FeedRangeInternal feedRange, PartitionKey?partitionKey, int pageSize, string filter, CancellationToken cancellationToken, QueryState state = default) : base(feedRange, cancellationToken, state) { this.queryDataSource = queryDataSource ?? throw new ArgumentNullException(nameof(queryDataSource)); this.SqlQuerySpec = sqlQuerySpec ?? throw new ArgumentNullException(nameof(sqlQuerySpec)); this.PartitionKey = partitionKey; this.PageSize = pageSize; this.Filter = filter; }
public OrderByQueryPartitionRangePageAsyncEnumerator( IQueryDataSource queryDataSource, SqlQuerySpec sqlQuerySpec, FeedRangeState <QueryState> feedRangeState, PartitionKey?partitionKey, QueryPaginationOptions queryPaginationOptions, string filter, CancellationToken cancellationToken) : base(feedRangeState, cancellationToken) { this.StartOfPageState = feedRangeState.State; this.innerEnumerator = new InnerEnumerator( queryDataSource, sqlQuerySpec, feedRangeState, partitionKey, queryPaginationOptions, filter, cancellationToken); this.bufferedEnumerator = new BufferedPartitionRangePageAsyncEnumerator <OrderByQueryPage, QueryState>( this.innerEnumerator, cancellationToken); }
/// <summary> /// Recupera a origemd de ados /// </summary> /// <param name="queryInfo"></param> /// <returns></returns> private IQueryDataSource GetDataSource(QueryInfo queryInfo) { var providerName = ProviderLocator.GetProviderName(queryInfo); IQueryDataSource dataSource = null; lock (_objLock) if (_queryDataSources.TryGetValue(providerName, out dataSource)) { return(dataSource); } dataSource = _serviceLocator.GetInstance <IQueryDataSource>(string.Format("{0}QueryDataSource", providerName)); if (dataSource == null) { throw new Exception(ResourceMessageFormatter.Create(() => Properties.Resources.DataSourceUndefined).Format()); } lock (_objLock) { if (!_queryDataSources.ContainsKey(providerName)) { _queryDataSources.Add(providerName, dataSource); } } return(dataSource); }
// Через DI передеаем все с чем нужно взаимодействовать. // Можно передать и DbConnection, правда для такого сценария есть ISqlDataSource public GetUserShedules(IQueryDataSource dataSource) : base(dataSource) { }
public QueryProcessor(IQueryResolver resolver, IQueryDataSource dataSource) { _resolver = resolver; _dataSource = dataSource; }
protected Query(IQueryDataSource dataSource) : base(dataSource) { }
// Через DI передеаем все с чем нужно взаимодействовать. // Можно передать и DbConnection, правда для такого сценария есть ISqlDataSource public FindUsers(IQueryDataSource dataSource) : base(dataSource) { }
private static CreatePartitionRangePageAsyncEnumerator <QueryPage, QueryState> MakeCreateFunction( IQueryDataSource queryDataSource, SqlQuerySpec sqlQuerySpec, int pageSize) => (PartitionKeyRange range, QueryState state) => new QueryPartitionRangePageAsyncEnumerator(
protected QueryBase(IQueryDataSource dataSource) { DataSource = dataSource; }
public LinqToEntitiesPredicateQuery(IQueryDataSource dataSource) : base(dataSource) { }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="dataSource">Fonte de dados</param> public SqlSourceContext(IQueryDataSource dataSource) { dataSource.Require("dataSource").NotNull(); _dataSource = dataSource; }
public IQuery <T, TParameters> Resolve <T, TParameters>(IQueryDataSource dataSource) { return(_container.With(dataSource).GetInstance <IQuery <T, TParameters> >()); }
// Через DI передеаем все с чем нужно взаимодействовать. // Можно передать и DbConnection, правда для такого сценария есть ISqlDataSource public GetScheduleById(IQueryDataSource dataSource) : base(dataSource) { }
// Через DI передеаем все с чем нужно взаимодействовать. // Можно передать и DbConnection, правда для такого сценария есть ISqlDataSource public GetUserById(IQueryDataSource dataSource) : base(dataSource) { }
/// <summary> /// Executa a consulta. /// </summary> /// <returns>Resultado na forma de um vetor de <see cref="QueryResult"/></returns> public IEnumerable <IQueryResult> Execute(IQueryDataSource dataSource) { dataSource.Require("dataSource").NotNull(); return(dataSource.Execute(CreateQueryInfos())); }