Exemplo n.º 1
0
        public HostedSolution(
            IConfiguration configuration,
            ConnectionStringSettings connectionString,
            TariffServiceStorage tariffServiceStorage,
            IOptionsMonitor <ILog> options,
            TenantUtil tenantUtil,
            TenantDomainValidator tenantDomainValidator,
            TenantDbContext tenantDbContext,
            UserDbContext userDbContext,
            CoreDbContext coreDbContext,
            string region)
        {
            tenantService = new DbTenantService(tenantDbContext, tenantDomainValidator);
            var baseSettings = new CoreBaseSettings(configuration);

            coreSettings = new CoreSettings(tenantService, baseSettings, configuration);

            userService         = new EFUserService(userDbContext);
            quotaService        = new DbQuotaService(coreDbContext);
            tariffService       = new TariffService(quotaService, tenantService, baseSettings, coreSettings, configuration, coreDbContext, tariffServiceStorage, options);
            clientTenantManager = new TenantManager(tenantService, quotaService, tariffService, null, baseSettings, coreSettings);
            settingsManager     = new DbSettingsManager(connectionString);
            TenantUtil          = tenantUtil;
            Region = region ?? string.Empty;
        }
Exemplo n.º 2
0
        public IActionResult Install(InstallModel model)
        {
            var dbSettings = DbSettingsManager.Load();

            if (dbSettings != null && !string.IsNullOrEmpty(dbSettings.DbConnectionString))
            {
                return(OkMsg());
            }

            // For Tests
            int databaseIndex = 111;

            //model.DbConnectionString = $"Data Source=47.98.165.82;Initial Catalog=Surfing{databaseIndex};Persist Security Info=True;User ID=sa;Password=z;Connect Timeout=360";

            //MySql
            //model.DbConnectionString = $"Data Source=10.0.0.7;Database=Surfing{databaseIndex};User ID=zeroing;Password=123456;pooling=true;port=3306;sslmode=none;CharSet=utf8;";

            model.CreateDatabaseIfNotExists = true;
            model.AdminEmail    = "admin";
            model.AdminPassword = "******";

            if (!ModelState.IsValid)
            {
                return(BadMsg());
            }

            if (!SqlServerExists(model.DbConnectionString))
            {
                if (!model.CreateDatabaseIfNotExists)
                {
                    throw new ZzException("数据库不存在!");
                }

                var createDatabaseError = CreateDatabase(model.DbConnectionString);
                if (!string.IsNullOrEmpty(createDatabaseError))
                {
                    throw new ZzException(createDatabaseError);
                }
            }

            dbSettings.DbConnectionString = model.DbConnectionString;
            DbSettingsManager.Save(dbSettings);

            var _installerService = EngineContext.Resolve <IInstallerService>();

            _installerService.InitializeDatabase();
            _installerService.InstallManager(model.AdminEmail, model.AdminPassword);

            if (model.UseSampleData)
            {
                _installerService.InitializeSampleData();
            }

            // Database configuration set
            //

            return(OkMsg());
        }
Exemplo n.º 3
0
 public HostedSolution(ConnectionStringSettings connectionString, string region)
 {
     tenantService       = new DbTenantService(connectionString);
     userService         = new DbUserService(connectionString);
     quotaService        = new DbQuotaService(connectionString);
     tariffService       = new TariffService(connectionString, quotaService, tenantService);
     clientTenantManager = new TenantManager(tenantService, quotaService, tariffService);
     settingsManager     = new DbSettingsManager(connectionString);
     Region = region ?? string.Empty;
     DbId   = connectionString.Name;
 }
Exemplo n.º 4
0
 public void Configure(string name, HostedSolution hostedSolution)
 {
     Configure(hostedSolution);
     hostedSolution.Region              = name;
     hostedSolution.TenantService       = TenantService.Get(name);
     hostedSolution.UserService         = UserService.Get(name);
     hostedSolution.QuotaService        = QuotaService.Get(name);
     hostedSolution.TariffService       = TariffService.Get(name);
     hostedSolution.ClientTenantManager = TenantManager.Get(name);
     hostedSolution.TenantUtil          = TenantUtil.Get(name);
     hostedSolution.SettingsManager     = DbSettingsManager.Get(name);
     hostedSolution.CoreSettings        = CoreSettings.Get(name);
 }
Exemplo n.º 5
0
        public static void UseSqlServerOption(this DbContextOptionsBuilder optionsBuilder, IServiceCollection services)
        {
            var dbSettings = DbSettingsManager.Load();

            if (dbSettings == null || string.IsNullOrEmpty(dbSettings.DbConnectionString))
            {
                return;
            }

            var dbContextOptionsBuilder = optionsBuilder.UseLazyLoadingProxies();

            dbContextOptionsBuilder.UseSqlServer(dbSettings.DbConnectionString, option => option.UseRowNumberForPaging());
        }
Exemplo n.º 6
0
        public static void UseMySqlOption(this DbContextOptionsBuilder optionsBuilder, IServiceCollection services)
        {
            var dbSettings = DbSettingsManager.Load();

            if (dbSettings == null || string.IsNullOrEmpty(dbSettings.DbConnectionString))
            {
                return;
            }

            var dbContextOptionsBuilder = optionsBuilder.UseLazyLoadingProxies();

            dbContextOptionsBuilder.UseMySql(dbSettings.DbConnectionString);
        }
Exemplo n.º 7
0
        //TODO:fix
        public HostedSolution(
            IConfiguration configuration,
            TenantDomainValidator tenantDomainValidator,
            TimeZoneConverter timeZoneConverter,
            DbRegistry dbRegistry,
            ConnectionStringSettings connectionString,
            TariffServiceStorage tariffServiceStorage,
            IOptionsMonitor <ILog> options,
            string region)
        {
            tenantService = new DbTenantService(null, null, null);
            var baseSettings = new CoreBaseSettings(configuration);

            coreSettings = new CoreSettings(tenantService, baseSettings, configuration);

            userService         = new DbUserService(null);
            quotaService        = new DbQuotaService(null);
            tariffService       = new TariffService(quotaService, tenantService, baseSettings, coreSettings, configuration, null, tariffServiceStorage, options);
            clientTenantManager = new TenantManager(tenantService, quotaService, tariffService, null, baseSettings, coreSettings);
            settingsManager     = new DbSettingsManager(connectionString);
            Region = region ?? string.Empty;
            DbId   = connectionString.Name;
        }