public override async Task <RequestResult <TenantDto> > Handle(CreateTenantCommand request, CancellationToken cancellationToken) { if (await _tenantsRepository.TenantCodeExists(request.TenantCode)) { return(RequestResult <TenantDto> .Failure(ErrorCode.TenantAlreadyExistsForCode, new { request.TenantCode })); } var tenant = await _tenantsRepository .CreateTenant(_mapper.Map <CreateTenantData>(request)); if (tenant == null) { return(RequestResult <TenantDto> .Failure(ErrorCode.CreateTenantFailed)); } var saveTenantSettingsData = _mapper.Map <SaveTenantSettingsData>(request); saveTenantSettingsData.TenantId = tenant.Id; var tenantSettings = await _tenantSettingsRepository .SaveTenantSettings(saveTenantSettingsData); if (tenantSettings == null) { return(RequestResult <TenantDto> .Failure(ErrorCode.CreateTenantFailed)); } if (!await _tenantAllowedOriginsRepository .SaveAllowedOriginsAsync(tenant.Id, new List <string> { request.AllowedOrigin })) { return(RequestResult <TenantDto> .Failure(ErrorCode.CreateTenantFailed)); } return(RequestResult <TenantDto> .Success(_mapper.Map <TenantDto>(tenant))); }
public async Task <ActionResult <TenantReadDto> > CreateTenant() { var newTenant = await _tenantsRepo.CreateTenant(); return(CreatedAtRoute(nameof(GetTenantById), new { newTenant.TenantId }, _mapper.Map <TenantReadDto>(newTenant))); }