diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs index b2cdb89b59..50a92bc751 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo/Abp/TenantManagement/TenantAppService.cs @@ -4,6 +4,8 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Volo.Abp.Application.Dtos; using Volo.Abp.Data; +using Volo.Abp.EventBus.Distributed; +using Volo.Abp.MultiTenancy; using Volo.Abp.ObjectExtending; namespace Volo.Abp.TenantManagement @@ -14,15 +16,18 @@ namespace Volo.Abp.TenantManagement protected IDataSeeder DataSeeder { get; } protected ITenantRepository TenantRepository { get; } protected ITenantManager TenantManager { get; } + protected IDistributedEventBus DistributedEventBus { get; } public TenantAppService( ITenantRepository tenantRepository, ITenantManager tenantManager, - IDataSeeder dataSeeder) + IDataSeeder dataSeeder, + IDistributedEventBus distributedEventBus) { DataSeeder = dataSeeder; TenantRepository = tenantRepository; TenantManager = tenantManager; + DistributedEventBus = distributedEventBus; } public virtual async Task GetAsync(Guid id) @@ -63,10 +68,22 @@ namespace Volo.Abp.TenantManagement await CurrentUnitOfWork.SaveChangesAsync(); + await DistributedEventBus.PublishAsync( + new TenantCreatedEto + { + Id = tenant.Id, + Name = tenant.Name, + Properties = + { + { "AdminEmail", input.AdminEmailAddress }, + { "AdminPassword", input.AdminPassword } + } + }); + using (CurrentTenant.Change(tenant.Id, tenant.Name)) { //TODO: Handle database creation? - + // TODO: Seeder might be triggered via event handler. await DataSeeder.SeedAsync( new DataSeedContext(tenant.Id) .WithProperty("AdminEmail", input.AdminEmailAddress)