internal CouchDatabase(IFlurlClient flurlClient, CouchSettings settings, string connectionString, string db) { _flurlClient = flurlClient ?? throw new ArgumentNullException(nameof(flurlClient)); _settings = settings ?? throw new ArgumentNullException(nameof(settings)); _connectionString = connectionString ?? throw new ArgumentNullException(nameof(connectionString)); Database = db ?? throw new ArgumentNullException(nameof(db)); _queryProvider = new CouchQueryProvider(flurlClient, _settings, connectionString, Database); Security = new CouchSecurity(NewRequest); }
internal CouchDatabase(IFlurlClient flurlClient, CouchOptions options, QueryContext queryContext) { _flurlClient = flurlClient; _options = options; _queryContext = queryContext; var queryOptimizer = new QueryOptimizer(); var queryTranslator = new QueryTranslator(options); var querySender = new QuerySender(flurlClient, queryContext); var queryCompiler = new QueryCompiler(queryOptimizer, queryTranslator, querySender); _queryProvider = new CouchQueryProvider(queryCompiler); Security = new CouchSecurity(NewRequest); LocalDocuments = new LocalDocuments(flurlClient, queryContext); }
internal CouchDatabase(IFlurlClient flurlClient, CouchOptions options, QueryContext queryContext, string?discriminator) { _feedChangeLineStartPattern = new Regex(@"{""seq"); _flurlClient = flurlClient; _options = options; _queryContext = queryContext; _discriminator = discriminator; var queryOptimizer = new QueryOptimizer(); var queryTranslator = new QueryTranslator(options); var querySender = new QuerySender(flurlClient, queryContext); var queryCompiler = new QueryCompiler(queryOptimizer, queryTranslator, querySender, _discriminator); _queryProvider = new CouchQueryProvider(queryCompiler); Security = new CouchSecurity(NewRequest); LocalDocuments = new LocalDocuments(flurlClient, queryContext); }