Files
magman/MagMan.UI/Components/MigrationManager.razor
T
2024-01-11 17:26:49 +01:00

89 lines
2.4 KiB
Plaintext

@* @using MagMan.Data
@using MagMan.UI.Data
@using MagMan.UI.Components *@
@* @inject GWMSDataService DataService *@
@inject MessageService AppMService
@inject IJSRuntime JSRuntime
@if (!DbAllOk)
{
<div class="row">
<div class="col-3 text-right">
<h3>DB Init</h3>
</div>
@if (!DbUserOk)
{
<div class="col-3">
<button id="btnReset" class="btn btn-danger btn-block" @onclick="initDb">
<i class="fas fa-database"></i> Init Main DB
</button>
</div>
}
else if (!DbIdentity)
{
<div class="col-3">
<button id="btnReset" class="btn btn-warning btn-block" @onclick="initIdent">
<i class="fas fa-user-shield"></i> Init Ident DB
</button>
</div>
}
</div>
}
@code {
[Parameter]
public EventCallback<int> evRefresh { get; set; }
[Parameter]
public EventCallback<int> evProcessing { get; set; }
protected async Task initDb()
{
if (!await JSRuntime.InvokeAsync<bool>("confirm", "Sicuro di voler effettuare inizializzazione/migrazione DB?"))
return;
reportProcess();
await MagMan.Data.Tenant.DbAdmin.migrateDbMain();
await ReloadData();
reportChange();
}
protected async Task initIdent()
{
if (!await JSRuntime.InvokeAsync<bool>("confirm", "Sicuro di voler effettuare inizializzazione/migrazione servizi Identity?"))
return;
reportProcess();
await MagMan.Data.Admin.DbAdmin.MigrateDbIdentity();
await ReloadData();
reportChange();
}
protected bool DbUserOk { get; set; } = false;
protected bool DbIdentity { get; set; } = false;
protected bool DbAllOk { get; set; } = false;
protected override async Task OnInitializedAsync()
{
await ReloadData();
}
protected async Task ReloadData()
{
var resultIden = await Health.Checks.DbIdentity(MagMan.Data.Admin.DbConfig.DATABASE_NAME);
DbIdentity = (resultIden.Status == Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus.Healthy);
DbAllOk = (DbIdentity);
}
private void reportChange()
{
evRefresh.InvokeAsync(1);
}
private void reportProcess()
{
evProcessing.InvokeAsync(1);
}
}