Ejemplo n.º 1
0
        public CosmosDbClient(
            IServiceProvider serviceProvider,
            CosmosDbConnection connection,
            CosmosDbConfig dbConfig,
            IEnumerable <ContainerDefinition> containerDefinitions)
        {
            this.ServiceProvider = serviceProvider;

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

            _containerDefinitions = definitions.ToArray();

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

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

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

                return(resp.Database);
            });
        }
Ejemplo n.º 2
0
 public CosmosDbBuilder ConnectUsing(string endPoint, string authKey)
 {
     _connection = new CosmosDbConnection(endPoint, authKey);
     return(this);
 }
Ejemplo n.º 3
0
 public CosmosDbBuilder ReadConfiguration(IConfiguration config)
 {
     _connection = new CosmosDbConnection(config);
     _dbconfig   = new CosmosDbConfig(config);
     return(this);
 }