public DatabaseContext(string dataSourceHost, string databaseName, string databaseUser, string databasePassword, string authenticationDatabaseName) { ArgumentValidation.ValidateString(dataSourceHost, nameof(dataSourceHost)); ArgumentValidation.ValidateString(databaseName, nameof(databaseName)); ArgumentValidation.ValidateString(databaseUser, nameof(databaseUser)); ArgumentValidation.ValidateString(databasePassword, nameof(databasePassword)); var sharedSettings = new MongoConnectionOptions { MongoDbHost = dataSourceHost, MongoDbUsername = databaseUser, MongoDbPassword = databasePassword, DatabaseName = databaseName, AuthenticationSource = authenticationDatabaseName }; _repositoryClient = new MongoRepositoryClient(sharedSettings); _repository = (IRepositoryInternal)_repositoryClient.GetRepository(databaseName); CkEntities = _repository.GetCollection <CkEntity>(); CkAttributes = _repository.GetCollection <CkAttribute>(); CkEntityAssociations = _repository.GetCollection <CkEntityAssociation>(); CkEntityInheritances = _repository.GetCollection <CkEntityInheritance>(); RtAssociations = _repository.GetCollection <RtAssociation>(); }
public SystemContext(IOptions <OspSystemConfiguration> systemConfiguration, IDistributedWithPubSubCache distributedWithPubSubCache) { ArgumentValidation.Validate(nameof(systemConfiguration), systemConfiguration); ArgumentValidation.Validate(nameof(distributedWithPubSubCache), distributedWithPubSubCache); _systemConfiguration = systemConfiguration.Value; _distributedWithPubSubCache = distributedWithPubSubCache; var sharedSettings = new MongoConnectionOptions { MongoDbHost = _systemConfiguration.DatabaseHost, MongoDbUsername = _systemConfiguration.AdminUser, MongoDbPassword = _systemConfiguration.AdminUserPassword, AuthenticationSource = _systemConfiguration.AuthenticationDatabaseName }; _ckCaches = new ConcurrentDictionary <string, ICkCache>(); _repositoryClient = new MongoRepositoryClient(sharedSettings); OspSystemDatabase = _repositoryClient.GetRepository(_systemConfiguration.SystemDatabaseName); _tenantCollection = OspSystemDatabase.GetCollection <SystemEntities.OspTenant>(); _configurationCollection = OspSystemDatabase.GetCollection <OspConfiguration>(); var sub = _distributedWithPubSubCache.Subscribe <string>(CacheCommon.KeyTenantUpdate); sub.OnMessage(message => { RemoveCkCache(message.Message); return(Task.CompletedTask); }); }
public static void UseMongo(this IServiceCollection services, IConfiguration configuration) { IMongoConnectionOptions mongoConnectionOptions = new MongoConnectionOptions(); new ConfigureFromConfigurationOptions<IMongoConnectionOptions>( configuration.GetSection(nameof(MongoConnectionOptions))) .Configure(mongoConnectionOptions); services.AddSingleton(mongoConnectionOptions); services.AddSingleton<IMongoDbContext, MongoDbContext>(); services.AddScoped<IUserRepository, UserRepository>(); services.AddScoped<IRefreshTokenRepository, RefreshTokenRepository>(); }
/// <summary> /// /// </summary> /// <param name="option"></param> public MongoContext(MongoConnectionOptions option) { var client = new MongoClient(option.ConnectionString); _db = client.GetDatabase(option.DatabaseName); }