Example #1
0
        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();
        }
Example #2
0
 public MongoDbInitializer(IMongoDbSeeder mongoDbSeeder, MongoDbOptions options)
 {
     _mongoDbSeeder = mongoDbSeeder;
     _seed          = options.Seed;
 }