예제 #1
0
        public CosmosDbClientBuilder UseDatabase(string databaseId)
        {
            _dbconfig                         = _dbconfig != null ?
                                    _dbconfig = new CosmosDbDatabaseConfig(databaseId, _dbconfig.SharedThroughput)
                                :
                                                _dbconfig = new CosmosDbDatabaseConfig(databaseId, null);

            return(this);
        }
예제 #2
0
        public CosmosDbClientBuilder WithSharedThroughput(int throughput)
        {
            _dbconfig = _dbconfig != null ?
                        new CosmosDbDatabaseConfig(_dbconfig.DatabaseId, throughput)
                                :
                        new CosmosDbDatabaseConfig(null, throughput);

            return(this);
        }
예제 #3
0
        public CosmosDbClient(
            IServiceProvider serviceProvider,
            CosmosDbConnectionSettings connectionSettings,
            CosmosDbDatabaseConfig dbDatabaseConfig,
            IEnumerable <ContainerDefinition> containerDefinitions)
        {
            this.ServiceProvider = serviceProvider;

            IEnumerable <ContainerDefinition> definitions = containerDefinitions as ContainerDefinition[] ?? containerDefinitions.ToArray();

            _containerDefinitions = definitions.ToArray();

            _sdkClient = new CosmosClient(
                connectionSettings.EndPoint,
                connectionSettings.AuthKey,
                new CosmosClientOptions()
            {
                ConnectionMode    = ConnectionMode.Direct,
                SerializerOptions = new CosmosSerializationOptions()
                {
                    IgnoreNullValues     = true,
                    PropertyNamingPolicy = CosmosPropertyNamingPolicy.CamelCase
                }
            });

            _lazyDatabase = new AsyncLazy <Database>(async() =>
            {
                DatabaseResponse resp = await _sdkClient.CreateDatabaseIfNotExistsAsync(dbDatabaseConfig.DatabaseId, dbDatabaseConfig.SharedThroughput);

                foreach (ContainerDefinition containerDefinition in definitions)
                {
                    await Internal_EnsureContainerExists(resp.Database, containerDefinition);
                }

                return(resp.Database);
            });
        }
예제 #4
0
 public CosmosDbClientBuilder ReadConfiguration(IConfiguration config)
 {
     _connectionSettings = new CosmosDbConnectionSettings(config);
     _dbconfig           = new CosmosDbDatabaseConfig(config);
     return(this);
 }