示例#1
0
        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));
        }
示例#2
0
        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);
        }
示例#3
0
        public InitialController(
            ISettingManager settingManager,
            IDatabaseSetup databaseSetup,
            IUserSetup userSetup) {
            _settingManager = settingManager;
            _databaseSetup = databaseSetup;
            _userSetup = userSetup;

            Logger = NullLogger.Instance;
        }