Files
gwms/GWMS.UI/Components/SetupDiagnostics.razor
2024-04-18 16:41:25 +02:00

100 lines
3.0 KiB
Plaintext

@using GWMS.Data
@using GWMS.UI.Data
@using System.ComponentModel.DataAnnotations
@if (!DbAllOk)
{
<div class="card">
<div class="card-header bg-warning text-light">
<h1>Diagnostica <i class="fas fa-exclamation-triangle"></i></h1>
</div>
<div class="card-body my-5">
<div class="row h3">
@if (!(DbUserAdmAuth))
{
<div class="col-3 text-right">
Admin Passcode
</div>
<div class="col-9">
<EditForm Model="@model">
<DataAnnotationsValidator />
@*<ValidationSummary />*@
<InputText type="password" placeholder="Password" @bind-Value="@model.Password" />
</EditForm>
</div>
}
else if (!(DbIdentity))
{
<div class="col-12">
<MigrationManager evRefresh="()=> Done()" evProcessing="()=> Processing()" />
</div>
}
else if (!DbLogOk)
{
<div class="col-12">
<SetupSim evRefresh="()=> Done()" evProcessing="()=> Processing()" />
</div>
}
@if (processRunning)
{
<div class="col-12 text-center">
<div class="progress">
<div class="progress-bar progress-bar-striped progress-bar-animated" style="width:75%"></div>
</div>
</div>
}
</div>
</div>
</div>
}
@code {
protected bool DbUserAdmAuth
{
get
{
return model.Password == "f@mmiEntrare!";
}
}
protected bool DbLogOk { get; set; } = false;
protected bool DbAllOk { get; set; } = false;
protected bool DbIdentity { get; set; } = false;
protected bool processRunning { get; set; } = false;
class Login
{
[Required]
public string Password { get; set; }
}
private Login model = new Login();
protected override async Task OnInitializedAsync()
{
processRunning = false;
await ReloadData();
}
protected async Task Processing()
{
processRunning = true;
DbConfig.ExecMigrationMain();
DbConfig.ExecMigrationIdentity();
await ReloadData();
}
protected async Task Done()
{
processRunning = false;
await ReloadData();
}
protected async Task ReloadData()
{
var resultLog = await Health.Checks.DbPlantTable(DbConfig.DATABASE_NAME);
var resultIden = await Health.Checks.DbIdentity(DbConfig.DATABASE_NAME);
DbLogOk = (resultLog.Status == HealthStatus.Healthy);
DbIdentity = (resultIden.Status == HealthStatus.Healthy);
DbAllOk = (DbLogOk && DbIdentity);
}
}