Exemple #1
0
        /// <inheritdoc />
        public TContext Create()
        {
            var value = _tenantProvider.Get().ToString();

            if (string.IsNullOrEmpty(value))
            {
                throw new TenantNotProvidedException();
            }
            var tenant = _tenantManager.Get(_tenantProvider.Get());

            if (tenant is null)
            {
                throw new TenantNotFoundException(_tenantProvider.Get().ToString());
            }

            var password = _tenantManager.GetTenantPassword(tenant.Password, tenant.ConcurrencyStamp);
            var connectionStringBuilder = new SqlConnectionStringBuilder
            {
                DataSource     = $"tcp:{tenant.Server},{tenant.Port}",
                InitialCatalog = tenant.Database,
                UserID         = tenant.UserName,
                Password       = password,
            };

            _context = Activator.CreateInstance(typeof(TContext), connectionStringBuilder, _tenantProvider, _onConfiguringDbContextOptionsBuilderProvider) as TContext;
            return(_context);
        }
Exemple #2
0
        public void Configure(string name, DbSettingsManager options)
        {
            Configure(options);

            options.TenantManager      = TenantManager.Get(name);
            options.WebstudioDbContext = DbContextManager.Get(name);
        }
        public void Configure(string name, DbSettingsManager options)
        {
            Configure(options);

            options.TenantManager          = TenantManager.Get(name);
            options.LazyWebstudioDbContext = new Lazy <WebstudioDbContext>(() => DbContextManager.Get(name));
        }
Exemple #4
0
        public ActionResponseDto Edit(TenantInputDto dto)
        {
            var tenant = _tenantManager.Get(dto.Id) ?? new Tenant();

            Mapper.Map(dto, tenant);
            bool isNewTenant = tenant.Id == Guid.Empty;

            // 保存租户
            _tenantManager.Save(ref tenant);
            // 保存超级管理员
            using (UnitOfWork.DisableFilter(typeof(OwnerTenantFilter)))
            {
                var superAdmin = _userManager.Get(u =>
                                                  u.Username == dto.SuperAdminName &&
                                                  u.OwnerTenantId == tenant.Id) ?? new User();
                superAdmin.Type        = SuperAdminUserType.ConstType;
                superAdmin.Username    = dto.SuperAdminName;
                superAdmin.OwnerTenant = tenant;
                if (dto.SuperAdminPassword != dto.SuperAdminConfirmPassword)
                {
                    throw new BadRequestException("Confirm password not matched with password");
                }
                else if (!string.IsNullOrEmpty(dto.SuperAdminPassword))
                {
                    superAdmin.SetPassword(dto.SuperAdminPassword);
                }
                else if (superAdmin.Id == Guid.Empty)
                {
                    throw new BadRequestException("Please provider a password for new user");
                }
                _userManager.Save(ref superAdmin);
            }
            return(ActionResponseDto.CreateSuccess("Saved Successfully"));
        }
Exemple #5
0
 public void Configure(string name, TenantUtil options)
 {
     Configure(options);
     options.TenantManager = TenantManager.Get(name);
 }