public virtual async Task <TenantDto> CreateAsync(TenantCreateDto input)
        {
            var tenant = await TenantManager.CreateAsync(input.Name);

            input.MapExtraPropertiesTo(tenant);

            await TenantRepository.InsertAsync(tenant);

            await CurrentUnitOfWork.SaveChangesAsync();

            var createEventData = new CreateEventData
            {
                Id   = tenant.Id,
                Name = tenant.Name,
                AdminEmailAddress = input.AdminEmailAddress,
                AdminPassword     = input.AdminPassword
            };
            // 因为项目各自独立,租户增加时添加管理用户必须通过事件总线
            // 而 TenantEto 对象没有包含所需的用户名密码,需要独立发布事件
            await EventBus.PublishAsync(createEventData);

            return(ObjectMapper.Map <Tenant, TenantDto>(tenant));
        }
 public virtual Task <TenantDto> CreateAsync(TenantCreateDto input)
 {
     ValidateModel();
     return(TenantAppService.CreateAsync(input));
 }