public void Register(ContainerBuilder builder, ITypeFinder typeFinder) { //controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //data access var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); //todo:暂时把连接字符串写死,测试时使用 //dataProviderSettings.DataConnectionString = @"Data Source=(localdb)\ProjectsV12;Initial Catalog=FzrainFramework;attachdbfilename=E:\MyFramework\Fzrain.Framework\Fzrain.Web\App_Data\FzrainFramework.mdf;Integrated Security=True;Persist Security Info=False;"; //dataProviderSettings.DataProvider = "sqlserver"; builder.Register(c => dataProviderSettings).As<DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve<DataSettings>())).As<BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve<BaseDataProviderManager>().LoadDataProvider()).As<IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataProviderSettings); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register<IDbContext>(c => new FzrainContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register<IDbContext>(c => new FzrainContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } //repository builder.RegisterGeneric(typeof(EfRepository<>)).As(typeof(IRepository<>)).InstancePerLifetimeScope(); //service builder.RegisterType<UserService>().As<IUserService>().InstancePerLifetimeScope(); builder.RegisterType<LolService>().As<ILolService>().InstancePerLifetimeScope(); builder.RegisterType<SettingService>().As<ISettingService>().InstancePerLifetimeScope(); }
public static bool DatabaseIsInstalled() { if (!_databaseIsInstalled.HasValue) { var manager = new DataSettingsManager(); var settings = manager.LoadSettings(); _databaseIsInstalled = settings != null && !String.IsNullOrEmpty(settings.DataConnectionString); } return _databaseIsInstalled.Value; }