/// <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); }
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)); }
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")); }
public void Configure(string name, TenantUtil options) { Configure(options); options.TenantManager = TenantManager.Get(name); }