private static void RegisterPersisters(IDepencencyInjectionStore store) { var conf = new MultiverseConfiguration { ShardMapManagerServerName = ConfigurationManager.AppSettings["ServerName"], UniverseServerName = ConfigurationManager.AppSettings["ServerName"], UniverseUserId = ConfigurationManager.AppSettings["Slider:UserName"], UniversePassword = ConfigurationManager.AppSettings["Slider:Password"] }; store.RegisterSingleton(conf); store.RegisterSingleton(new DbFacility(conf.UniverseUserId, conf.UniversePassword)); store.RegisterSingleton(c => new SmmFacility(conf, c.GetInstance <DbFacility>())); store.RegisterSingleton(c => c.GetInstance <SmmFacility>().CreateOrGetShardMapManager()); if (ConfigurationManager.AppSettings["Slider:BeElastic"].Equals("true", StringComparison.OrdinalIgnoreCase)) { store.RegisterSingleton <IConnectionProvider>(c => new ElasticScaleConnectionProvider( c.GetInstance <ShardMapManager>(), c.GetInstance <MultiverseConfiguration>(), c.GetInstance <DbFacility>()) ); store.RegisterSingleton <ITenantsCommonConnectionProvider>(c => new ElasticTenantsCommonConnectionProvider( c.GetInstance <ShardMapManager>(), c.GetInstance <MultiverseConfiguration>(), c.GetInstance <SmmFacility>(), c.GetInstance <DbFacility>() )); } else { var connectionString = ConfigurationManager.ConnectionStrings["Slider:Once"].ConnectionString; store.RegisterSingleton <IConnectionProvider>(c => new FixedConnectionProvider(connectionString)); store.RegisterSingleton <ITenantsCommonConnectionProvider>(c => new FixedTenantsCommonConnectionProvider(connectionString)); } store.RegisterSingleton <ITenantPersister>(c => new TenantPersister(c.GetInstance <ITenantsCommonConnectionProvider>())); store.RegisterSingleton <ICompanyPersister>(c => new CompanyPersister(c.GetInstance <IConnectionProvider>())); }
private static void RegisterControllers(IDepencencyInjectionStore store) { store.RegisterTransient(c => new SubscriptionsController(c.GetInstance <ITenantPersister>())); store.RegisterTransient(c => new CompaniesController(c.GetInstance <ICompanyPersister>())); }