public static void AddMongo(this ContainerBuilder builder) { //Register a default MongoDbOptions, so that we can inject it where we need it. builder.Register(context => { var configuration = context.Resolve <IConfiguration>(); MongoDbOptions options = new MongoDbOptions(); //Bind the class to the section in config configuration.GetSection("mongo").Bind(options); return(options); }).SingleInstance(); builder.Register(context => { var options = context.Resolve <MongoDbOptions>(); return(new MongoClient(options.ConnectionString)); }).SingleInstance(); builder.Register(context => { var options = context.Resolve <MongoDbOptions>(); var client = context.Resolve <MongoClient>(); return(client.GetDatabase(options.Database)); }).InstancePerLifetimeScope(); builder.RegisterType <MongoDbInitializer>() .As <IMongoDbInitializer>() .InstancePerLifetimeScope(); builder.RegisterType <MongoDbSeeder>() .As <IMongoDbSeeder>() .InstancePerLifetimeScope(); }
public MongoDbInitializer(IMongoDbSeeder mongoDbSeeder, MongoDbOptions options) { _mongoDbSeeder = mongoDbSeeder; _seed = options.Seed; }