public FindOneAndDeleteTests(LaunchSettingsFixture launchSettingsFixture) { _mongoClient = new MongoClient(Environment.GetEnvironmentVariable("MongoDbConnectionString")); MongoRepository.Configure() .Database(DbName, x => x .MapAlongWithSubclassesInSameAssebmly <MyBaseEntity>(CollectionName) ) .AutoEnlistWithTransactionScopes() .Build(); // Empty all collections in database foreach (var collectionName in _mongoClient.GetDatabase(DbName).ListCollectionNames().ToEnumerable()) { _mongoClient.GetDatabase(DbName).GetCollection <BsonDocument>(collectionName).DeleteMany(x => true); } // Add test documents to db var baseEntityDocument = new MyBaseEntity("Mary"); var derivedEntityDocument = new MyDerivedEntity("Joe", 45); _baseEntityId = baseEntityDocument.Id; _derivedEntityId = derivedEntityDocument.Id; _repository = _mongoClient.GetRepository <MyBaseEntity>(); _repository.InsertAsync(baseEntityDocument).Wait(); _repository.InsertAsync(derivedEntityDocument).Wait(); AssertNumberOfDocumentsInCollection(2).Wait(); AssertNumberOfDocumentsInTrash(0).Wait(); }
public static IServiceCollection AddMongoClient(this IServiceCollection services, Action <MongoConnectionSettings> configure) { var options = new MongoConnectionSettings(); configure?.Invoke(options); services.AddSingleton(options); var mongoClientSettings = new MongoClientSettings { Credential = MongoCredential.CreateCredential(options.Database, options.Username, options.Password), Server = new MongoServerAddress(options.Host, options.Port), Scheme = ConnectionStringScheme.MongoDB }; var mongoClient = new MongoClient(mongoClientSettings); services.AddSingleton <IMongoClient>(mongoClient); MongoRepository.Configure() .Database(options.Database, db => db .MapAlongWithSubclassesInSameAssebmly <OrderId>(options.CollectionName) .MapAlongWithSubclassesInSameAssebmly <OrderArchiveItem>()) .AutoEnlistWithTransactionScopes() .Build(); services.AddRepositories(mongoClient); return(services); }
public WithTransactionTests(LaunchSettingsFixture launchSettingsFixture) { MongoRepository.Configure() .Database("TestDb", x => x .Map <MyStandaloneEntity>("MyStandaloneEntities") ) .AutoEnlistWithTransactionScopes() .Build(); this._mongoClient = new MongoClient(Environment.GetEnvironmentVariable("MongoDbConnectionString")); _mongoClient.GetDatabase("TestDb").GetCollection <MyStandaloneEntity>("MyStandaloneEntities").DeleteMany(x => true); }
public UpdateOneBulkTests(LaunchSettingsFixture fixture) { MongoRepository.Configure() .DatabasePerTenant("TestDb", x => x .Map <Item>("Items") ) .AutoEnlistWithTransactionScopes() .Build(); MongoDb.Bson.NodaTime.NodaTimeSerializers.Register(); _mongoClient = new MongoClient(Environment.GetEnvironmentVariable("MongoDbConnectionString")); _mongoClient.GetDatabase("_TestDb").GetCollection <BsonDocument>("Items").DeleteMany(x => true); }
public UpdateManyTests(LaunchSettingsFixture launchSettingsFixture) { _mongoClient = new MongoClient(Environment.GetEnvironmentVariable("MongoDbConnectionString")); MongoRepository.Configure() .Database(DbName, x => x .MapAlongWithSubclassesInSameAssebmly <Person>(CollectionName) ) .AutoEnlistWithTransactionScopes() .Build(); // Empty all collections in database foreach (var collectionName in _mongoClient.GetDatabase(DbName).ListCollectionNames().ToEnumerable()) { _mongoClient.GetDatabase(DbName).GetCollection <BsonDocument>(collectionName).DeleteMany(x => true); } _repository = _mongoClient.GetRepository <Person>(); }
public AmbientSessionTests(LaunchSettingsFixture launchSettingsFixture) { MongoRepository.Configure() .DatabasePerTenant("TestDb", x => x .MapAlongWithSubclassesInSameAssebmly <DummyEntity>("DummyEntities") ) .AutoEnlistWithTransactionScopes() .Build(); this._mongoClient = new MongoClient(Environment.GetEnvironmentVariable("MongoDbConnectionString")); _mongoClient.GetRepository <DummyEntity>("tenant_a").DeleteManyAsync(x => true).Wait(); _mongoClient.GetRepository <DummyEntity>("tenant_b").DeleteManyAsync(x => true).Wait(); _mongoClient.GetRepository <DummyEntity>().DeleteManyAsync(x => true).Wait(); _mongoClient.GetRepository <DummyEntity>("tenant_a").PermamentlyDeleteSoftDeletedAsync(x => true).Wait(); _mongoClient.GetRepository <DummyEntity>("tenant_b").PermamentlyDeleteSoftDeletedAsync(x => true).Wait(); _mongoClient.GetRepository <DummyEntity>().PermamentlyDeleteSoftDeletedAsync(x => true).Wait(); }