@page "/operations"
@attribute [Authorize]
@using QuantEngine.Core.Infrastructure
@inject HttpClient Http
QuantEngine - Operations
Operational Report
Temp/operational_report.json만 읽는 운영 고정 화면입니다.
Schema
@SchemaVersion
Sections
@SectionCountLabel
Source
@SourceJson
Generated
@GeneratedAt
@foreach (var section in HighlightSections)
{
@(section.Name)
@(section.Title)
@(section.Preview)
}
Report Health
Status: @HealthLabel
Path: @ReportPath
Sections rendered: @RenderedSectionCountLabel
Sections
@if (Sections.Count == 0)
{
DATA_MISSING: operational_report.json에 표시할 섹션이 없습니다.
}
else
{
Name
Title
Preview
@context.Name
@context.Title
@context.Preview
}
@code {
private readonly List Sections = new();
private readonly List HighlightSections = new();
private string SchemaVersion = "n/a";
private string SourceJson = "n/a";
private string GeneratedAt = "n/a";
private string SectionCountLabel = "0";
private string RenderedSectionCountLabel = "0";
private string HealthLabel = "DATA_MISSING";
private string ReportPath = "n/a";
protected override async Task OnInitializedAsync()
{
try
{
var report = await Http.GetFromJsonAsync("api/operational-report");
if (report != null)
{
SchemaVersion = report.SchemaVersion;
SourceJson = report.SourceJson;
GeneratedAt = report.GeneratedAt;
Sections.Clear();
Sections.AddRange(report.Sections);
HighlightSections.Clear();
HighlightSections.AddRange(Sections.Take(4));
SectionCountLabel = report.SectionCount.ToString();
RenderedSectionCountLabel = Sections.Count.ToString();
HealthLabel = Sections.Count > 0 ? "PASS" : "DATA_MISSING";
}
}
catch
{
HealthLabel = "DATA_MISSING";
}
}
}