WIP: AI Validator
This commit is contained in:
@@ -234,6 +234,89 @@
|
||||
}
|
||||
</MudTabPanel>
|
||||
|
||||
@if (layer?.Type == LayerType.Validation)
|
||||
{
|
||||
<MudTabPanel Text="Validation Results" Icon="@Icons.Material.Filled.CheckCircle">
|
||||
@if (records.Any())
|
||||
{
|
||||
var overallStatus = records.FirstOrDefault(r => r.Code == "OverallStatus")?.Desc1;
|
||||
var confidence = records.FirstOrDefault(r => r.Code == "Confidence")?.Desc1;
|
||||
var summary = records.FirstOrDefault(r => r.Code == "Summary")?.Desc1;
|
||||
|
||||
<MudAlert Severity="@GetValidationSeverity(overallStatus)" Dense="false" Class="mb-4">
|
||||
<strong>Overall Status:</strong> @(overallStatus?.ToUpper() ?? "UNKNOWN")
|
||||
@if (!string.IsNullOrEmpty(confidence))
|
||||
{
|
||||
<span style="margin-left: 16px;"><strong>Confidence:</strong> @confidence</span>
|
||||
}
|
||||
</MudAlert>
|
||||
|
||||
@if (!string.IsNullOrEmpty(summary))
|
||||
{
|
||||
<MudPaper Class="pa-4 mb-4" Outlined="true">
|
||||
<MudText Typo="Typo.h6" Class="mb-2">Summary</MudText>
|
||||
<MudText Typo="Typo.body2">@summary</MudText>
|
||||
</MudPaper>
|
||||
}
|
||||
|
||||
@if (records.Where(r => r.Code.StartsWith("ANOMALY_")).Any())
|
||||
{
|
||||
<MudText Typo="Typo.h6" Class="mb-3">Record Anomalies</MudText>
|
||||
<MudTable Items="@records.Where(r => r.Code.StartsWith("ANOMALY_")).ToList()"
|
||||
Dense="true"
|
||||
Striped="true"
|
||||
FixedHeader="true"
|
||||
Elevation="0"
|
||||
Class="mb-4">
|
||||
<HeaderContent>
|
||||
<MudTh>Code</MudTh>
|
||||
<MudTh>Details</MudTh>
|
||||
</HeaderContent>
|
||||
<RowTemplate>
|
||||
<MudTd DataLabel="Code">
|
||||
<MudChip T="string" Size="Size.Small" Color="Color.Warning">@context.Code.Replace("ANOMALY_", "")</MudChip>
|
||||
</MudTd>
|
||||
<MudTd DataLabel="Details">@context.Desc1</MudTd>
|
||||
</RowTemplate>
|
||||
</MudTable>
|
||||
}
|
||||
|
||||
@if (records.Where(r => r.Code.StartsWith("STRUCTURAL_")).Any())
|
||||
{
|
||||
<MudText Typo="Typo.h6" Class="mb-3">Structural Issues</MudText>
|
||||
<MudTable Items="@records.Where(r => r.Code.StartsWith("STRUCTURAL_")).ToList()"
|
||||
Dense="true"
|
||||
Striped="true"
|
||||
FixedHeader="true"
|
||||
Elevation="0"
|
||||
Class="mb-4">
|
||||
<HeaderContent>
|
||||
<MudTh>Type</MudTh>
|
||||
<MudTh>Details</MudTh>
|
||||
</HeaderContent>
|
||||
<RowTemplate>
|
||||
<MudTd DataLabel="Type">
|
||||
<MudChip T="string" Size="Size.Small" Color="Color.Error">@context.Code.Replace("STRUCTURAL_", "")</MudChip>
|
||||
</MudTd>
|
||||
<MudTd DataLabel="Details">@context.Desc1</MudTd>
|
||||
</RowTemplate>
|
||||
</MudTable>
|
||||
}
|
||||
|
||||
@if (!records.Where(r => r.Code.StartsWith("ANOMALY_")).Any() && !records.Where(r => r.Code.StartsWith("STRUCTURAL_")).Any())
|
||||
{
|
||||
<MudAlert Severity="Severity.Success" Dense="true">
|
||||
No anomalies or structural issues detected. All data appears normal.
|
||||
</MudAlert>
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<MudAlert Severity="Severity.Info">No validation results available.</MudAlert>
|
||||
}
|
||||
</MudTabPanel>
|
||||
}
|
||||
|
||||
@if (showHistoryTab)
|
||||
{
|
||||
<MudTabPanel Text="History" Icon="@Icons.Material.Filled.History">
|
||||
|
||||
@@ -503,7 +503,7 @@ public partial class Details : ComponentBase, IDisposable
|
||||
if (layer?.Records == null) return false;
|
||||
|
||||
var typeRecord = layer.Records.FirstOrDefault(x => x.Code == "Type");
|
||||
return typeRecord?.Desc1 == "ImportWorker" || typeRecord?.Desc1 == "ProcessWorker";
|
||||
return typeRecord?.Desc1 == "ImportWorker" || typeRecord?.Desc1 == "ProcessWorker" || typeRecord?.Desc1 == "ValidationWorker";
|
||||
}
|
||||
|
||||
private async Task RunNow()
|
||||
@@ -545,6 +545,18 @@ public partial class Details : ComponentBase, IDisposable
|
||||
}
|
||||
}
|
||||
|
||||
// Validation tab helper methods
|
||||
private Severity GetValidationSeverity(string? status)
|
||||
{
|
||||
return status?.ToLower() switch
|
||||
{
|
||||
"pass" => Severity.Success,
|
||||
"warning" => Severity.Warning,
|
||||
"critical" => Severity.Error,
|
||||
_ => Severity.Info
|
||||
};
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
HubService.EntityChanged -= OnEntityChanged;
|
||||
|
||||
Reference in New Issue
Block a user