示例#1
0
        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>()));
        }
示例#2
0
 private static void RegisterControllers(IDepencencyInjectionStore store)
 {
     store.RegisterTransient(c => new SubscriptionsController(c.GetInstance <ITenantPersister>()));
     store.RegisterTransient(c => new CompaniesController(c.GetInstance <ICompanyPersister>()));
 }