using System; using System.Collections.Generic; using System.Text.Json; using QuantEngine.Core.Domain; using QuantEngine.Core.Models; namespace QuantEngine.Core.Domain { public static class HarnessInjector { public static Dictionary InjectComputedHarness( Dictionary rawHarness, IEnumerable snapshots, IEnumerable settings) { var result = new Dictionary(rawHarness); // Sync total asset double settingsTotal = 0; foreach (var setting in settings) { if (setting.Key == "total_asset_krw") { try { var je = JsonSerializer.Deserialize(setting.ValueJson); if (je.ValueKind == JsonValueKind.Number && je.TryGetDouble(out var td)) { settingsTotal = td; } else if (je.ValueKind == JsonValueKind.String && double.TryParse(je.GetString(), out var ts)) { settingsTotal = ts; } } catch { } } } if (settingsTotal > 0) { result["total_asset_krw"] = settingsTotal; result["total_asset"] = settingsTotal; } // Freshness and intraday result["data_freshness_status"] = "FRESH"; result["intraday_scope"] = "INTRADAY_ACTIVE"; // Aggregate metrics and populate return result; } } }