public static IServiceProvider Bootstrap(IServiceCollection services, Settings settings) { var container = new Container(); container.Configure(config => { config.Scan(scanner => { scanner.TheCallingAssembly(); scanner.WithDefaultConventions(); }); // servcies var mongoClient = MongoConnectionFactory.GetConnection(settings.ConnectionString); config.For <IUserRepository <string> >().LifecycleIs(new ThreadLocalStorageLifecycle()).Use(MongoUserRepository.Create(mongoClient, settings.DbName)); config.For <ILogRepository <string> >().LifecycleIs(new ThreadLocalStorageLifecycle()).Use(MongoLogRepository.Create(mongoClient, settings.DbName)); config.For <ILogService>().Use <LogService>(); config.For <IUserService>().Use <UserService>(); // external services config.Populate(services); }); return(container.GetInstance <IServiceProvider>()); }
public void Setup() { _expectedBook = new Book { Author = Author, Title = Title1, Publisher = Publisher, Isbn = Isbn }; _differentBook = new Book { Author = Author + " Different", Title = Title1 + "Different", Publisher = Publisher + "Different", Isbn = Isbn + "Different", }; _mongoDatabase = MongoConnectionFactory.GetMongoDatabase(); _plainCollection = _mongoDatabase.GetCollection("books"); _bookCollection = _mongoDatabase.GetCollection <Book>("books"); _repository = new BookRepository(_mongoDatabase); _plainCollection.Drop(); }
public void ShouldConnectToMongoDatabase() { MongoDatabase mongoDatabase = MongoConnectionFactory.GetMongoDatabase(); Assert.IsNotNull(mongoDatabase); MongoCollection <BsonDocument> mongoCollection = mongoDatabase.GetCollection("students"); Assert.IsNotNull(mongoCollection); var asQueryable = mongoCollection.AsQueryable(); logger.Debug("Spinning through students"); foreach (var bsonDoc in asQueryable) { logger.Debug("student = {0}", bsonDoc["name"]); } }
public MongoDbContext(MongoConnectionFactory mongoDBFactory, IOptions <MongoOptions> options) { options.Value.ConnectionString ??= "mongodb://localhost:27017/FantasySky"; _connection = mongoDBFactory.CreateConnection(options); }