public void Save(SysSetting setting, IDatabaseSetup databaseSetup) { if (setting == null) throw new ArgumentNullException("setting"); if (String.IsNullOrEmpty(setting.SiteName)) throw new ArgumentException("系统设置名称不能为空", "setting"); setting.EncryptionAlgorithm = EncryptionAlgorithm; setting.EncryptionKey = SymmetricAlgorithm.Create(setting.EncryptionAlgorithm).Key.ToHexString(); setting.HashAlgorithm = "HMACSHA256"; setting.HashKey = HMAC.Create(setting.HashAlgorithm).Key.ToHexString(); Action<Configuration> alterCfg = null; if (setting.DataProvider == DatabaseTypes.MsSqlCe || setting.DataProvider == DatabaseTypes.SqLite) { var path = Path.Combine(_appDataFolder.MapPath("Sites"), setting.SiteName, setting.DataConnectionString); if (setting.DataProvider == DatabaseTypes.MsSqlCe) { setting.DataConnectionString = String.Format("Data Source={0}", path); CreateSqlCeDatabaseFile(path, setting.DataConnectionString); alterCfg = cfg => cfg.SetProperty("connection.release_mode", "on_close"); } else setting.DataConnectionString = path; } var filePath = Path.Combine(Path.Combine("Sites", setting.SiteName), SettingsFileName); databaseSetup.Setup(setting, alterCfg); _appDataFolder.CreateFile(filePath, SettingsSerializer.ComposeSettings(setting)); }
public static IServiceCollection AddDbSetup <TContext>(this IServiceCollection services, DbSetupParameters parameters, IDatabaseSetup setup, bool devMode = false, bool poolMode = false) where TContext : DbContext { if (services is null) { throw new ArgumentNullException(nameof(services)); } if (poolMode) { services.AddDbContextPool <TContext>(builder => { setup.DbSetup(parameters, builder); EnableDevFeatures(builder, devMode); }); } else { services.AddDbContext <TContext>(builder => { setup.DbSetup(parameters, builder); EnableDevFeatures(builder, devMode); }); } return(services); }
public InitialController( ISettingManager settingManager, IDatabaseSetup databaseSetup, IUserSetup userSetup) { _settingManager = settingManager; _databaseSetup = databaseSetup; _userSetup = userSetup; Logger = NullLogger.Instance; }