/// <summary> /// Opens the component. /// </summary> /// <param name="correlationId">(optional) transaction id to trace execution through call chain.</param> public async virtual Task OpenAsync(string correlationId) { if (IsOpen()) { return; } if (_connection == null) { _connection = CreateLocalConnection(); _localConnection = true; } if (_localConnection) { await _connection.OpenAsync(correlationId); } if (_connection.IsOpen() == false) { throw new InvalidStateException(correlationId, "CONNECTION_NOT_OPENED", "Database connection is not opened"); } _database = _connection.GetDatabase(); _collection = _database.GetCollection <T>(_collectionName); _opened = true; }
private MongoDbConnection CreateLocalConnection() { var connection = new MongoDbConnection(); if (_config != null) { connection.Configure(_config); } if (_references != null) { connection.SetReferences(_references); } return(connection); }
/// <summary> /// Sets references to dependent components. /// </summary> /// <param name="references">references to locate the component dependencies.</param> public virtual void SetReferences(IReferences references) { _references = references; _logger.SetReferences(references); _dependencyResolver.SetReferences(references); // Get connection _connection = _dependencyResolver.GetOneOptional("connection") as MongoDbConnection; _localConnection = _connection == null; // Or create a local one if (_connection == null) { _connection = CreateLocalConnection(); } }
public MongoDbConnectionTest() { Db = new MongoDbConnection(); mongoUri = Environment.GetEnvironmentVariable("MONGO_URI"); mongoHost = Environment.GetEnvironmentVariable("MONGO_HOST") ?? "localhost"; mongoPort = Environment.GetEnvironmentVariable("MONGO_PORT") ?? "27017"; mongoDatabase = Environment.GetEnvironmentVariable("MONGO_DB") ?? "test"; if (mongoUri == null && mongoHost == null) { return; } if (Db == null) { return; } }
/// <summary> /// Unsets (clears) previously set references to dependent components. /// </summary> public virtual void UnsetReferences() { _connection = null; }