10e1cfe409
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (push) Failing after 4s
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (pull_request) Failing after 4s
Quant Engine CI/CD Pipeline / validate-core (pull_request) Failing after 2m18s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (pull_request) Has been skipped
55 lines
1.7 KiB
C#
55 lines
1.7 KiB
C#
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<string, object> InjectComputedHarness(
|
|
Dictionary<string, object> rawHarness,
|
|
IEnumerable<AccountSnapshot> snapshots,
|
|
IEnumerable<Setting> settings)
|
|
{
|
|
var result = new Dictionary<string, object>(rawHarness);
|
|
|
|
// Sync total asset
|
|
double settingsTotal = 0;
|
|
foreach (var setting in settings)
|
|
{
|
|
if (setting.Key == "total_asset_krw")
|
|
{
|
|
try
|
|
{
|
|
var je = JsonSerializer.Deserialize<JsonElement>(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;
|
|
}
|
|
}
|
|
}
|