Question : **How to do the same customization? in the BLAZOR new web app. **
to close the loop on this, Release 8.3 fixed the issue.
actually it looks like ABP 8.3 solves the problem. just saw the migration guide. Let me upgrade and report back
I changed the above code slightly since the email property cannot take USER NAME.
private async Task MigrateAndSeedTenantDatabaseAsync(Guid tenantId, string userName, string password)
{
using (_currentTenant.Change(tenantId))
{
await _dbSchemaMigrator.MigrateAsync();
await _dataSeeder.SeedAsync(new DataSeedContext(tenantId)
.WithProperty("AdminUserName",
userName)
.WithProperty(IdentityDataSeedContributor.AdminPasswordPropertyName,
password)
);
}
}
See the code below for CustomRegisterModel How should i modify to set the DEFAULT NAME as** Input.UserName** `
public override async Task<IActionResult> OnPostAsync()
{
try
{
var tenantName = $"{Input.UserName}-dedicated-tenant";
var defaultConnectionString = _configuration.GetConnectionString("Default");
if (string.IsNullOrEmpty(defaultConnectionString))
{
throw new Exception("Default connection string is not configured in app settings.");
}
// Create the database for the new tenant
var tenantConnectionString = CreateTenantSpecificConnectionString(defaultConnectionString, tenantName);
//await CreateTenantDatabaseAsync(tenantConnectionString, tenantName);
SaasTenantDto tenant;
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
var tenantCreateDto = new SaasTenantCreateDto
{
Name = tenantName,
AdminEmailAddress = Input.EmailAddress,
AdminPassword = Input.Password,
ConnectionStrings = new SaasTenantConnectionStringsDto
{
Default = tenantConnectionString
}
};
tenant = await _tenantAppService.CreateAsync(tenantCreateDto);
// Migrate and seed the tenant database
await MigrateAndSeedTenantDatabaseAsync(tenant.Id);
await uow.CompleteAsync();
}
return RedirectToPage("/Login"); // or wherever you want to redirect after successful registration
}
catch (Exception ex)
{
_logger.LogError(ex, "An error occurred during registration");
// Redirect to the login page
return RedirectToPage("./Login");
}
}
private string CreateTenantSpecificConnectionString(string defaultConnectionString, string tenantName)
{
var builder = new NpgsqlConnectionStringBuilder(defaultConnectionString);
builder.Database = tenantName;
return builder.ConnectionString;
}
private async Task MigrateAndSeedTenantDatabaseAsync(Guid tenantId)
{
using (_currentTenant.Change(tenantId))
{
await _dbSchemaMigrator.MigrateAsync();
}
}
}
`