/// <summary> /// Create database abstraction /// </summary> /// <param name="config"></param> /// <returns></returns> public static async Task <DocumentDbRepository> CreateAsync( ICosmosDbConfig config) { if (string.IsNullOrEmpty(config?.DbConnectionString)) { throw new ArgumentNullException(nameof(config.DbConnectionString)); } var cs = ConnectionString.Parse(config.DbConnectionString); var client = new DocumentClient(new Uri(cs.Endpoint), cs.SharedAccessKey); var databaseId = config.DatabaseId; if (string.IsNullOrEmpty(config.DatabaseId)) { databaseId = "default"; } await client.CreateDatabaseIfNotExistsAsync(new Database { Id = databaseId }); return(new DocumentDbRepository { DatabaseId = databaseId, Client = client }); }
/// <summary> /// Create collection /// </summary> /// <param name="config"></param> /// <param name="logger"></param> protected CosmosDbCollection(ICosmosDbConfig config, ILogger logger) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _config = config; _collectionId = config?.CollectionId ?? typeof(T).Name; _db = DocumentDbRepository.CreateAsync(config).Result; CreateCollectionIfNotExistsAsync().Wait(); }
public CosmosDb(IOptions <CosmosDbConfig> config) { if (config == null) { throw new ArgumentNullException(nameof(config)); } this.config = config.Value; this.client = new CosmosClient(this.config.EndPointUrl, this.config.AuthorizationKey); }
/// <summary> /// Creates server /// </summary> /// <param name="config"></param> /// <param name="logger"></param> /// <param name="jsonConfig"></param> public CosmosDbServiceClient(ICosmosDbConfig config, ILogger logger, IJsonSerializerConfig jsonConfig = null) { _config = config ?? throw new ArgumentNullException(nameof(config)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _jsonConfig = jsonConfig; if (string.IsNullOrEmpty(_config?.DbConnectionString)) { throw new ArgumentNullException(nameof(_config.DbConnectionString)); } }
/// <summary> /// Create provider /// </summary> /// <param name="config"></param> /// <param name="logger"></param> public CosmosDbAuditLogWriter(ICosmosDbConfig config, ILogger logger) : base(config, logger) { }