@page "/account/tenant-selection"
@layout AuthenticationLayout
@using Indotalent.Shared.Consts
@attribute [Authorize]
@using Microsoft.AspNetCore.Authorization
@using Microsoft.JSInterop
@inject NavigationManager Navigation
@inject ISnackbar Snackbar
@inject IJSRuntime JSRuntime
Select Tenant - @GlobalConsts.AppInitial
@if (isLoading)
{
}
else if (!myTenants.Any())
{
You don't have access to any tenant. Please contact your Administrator.
}
else
{
@foreach (var item in myTenants)
{
@item.TenantName
@if (!string.IsNullOrEmpty(item.Description))
{
@item.Description
}
}
}
Want to sign in with another account?
Sign Out
@code {
private bool isLoading = true;
private List myTenants = new();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
myTenants = await JSRuntime.InvokeAsync>("apiAccountFetchMyTenants");
isLoading = false;
StateHasChanged();
}
}
private async Task HandleSelectTenant(string tenantId)
{
var result = await JSRuntime.InvokeAsync("apiAccountConfirmTenant", tenantId);
if (result.Success)
{
Snackbar.Add("Tenant workspace loaded successfully.", Severity.Success);
Navigation.NavigateTo("/home", forceLoad: true);
}
else
{
Snackbar.Add("Failed to assign tenant workspace.", Severity.Error);
}
}
public class TenantDto { public string TenantId { get; set; } = ""; public string TenantName { get; set; } = ""; public string? Description { get; set; } }
public class ApiResult { public bool Success { get; set; } }
}