using System.Configuration; using MongoDB.Driver; namespace Sony.ChartBot.Repository { public abstract class BaseRepository { private readonly string _databaseName; private readonly string _collectionName; private MongoClient _client; private IMongoDatabase _database; protected BaseRepository(string database, string collectionName) { _databaseName = database; _collectionName = collectionName; } protected virtual MongoClient Client { get { return _client ?? (_client = new MongoClient(GetConnectionString("mongodb"))); } } protected virtual IMongoDatabase Database { get { return _database ?? (_database = Client.GetDatabase(_databaseName)); } } protected virtual IMongoCollection Collection { get { return Database.GetCollection(_collectionName); } } private string GetConnectionString(string connectionStringName) { return ConfigurationManager .ConnectionStrings[connectionStringName] .ConnectionString; } } }