feat(dotnet): 파이썬 공식 계산 엔진 C# 포팅 및 .NET 인프라 기반 결함(WBS-10.1) 해결
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
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
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user