| 1234567891011121314151617181920212223242526272829303132 |
- namespace Infrastructure.StockData;
- /// <summary>
- /// SEIBro getBassetUnredScale(기초자산별 미상환규모) 응답 파서 — 순수 C#. 공용 SeibroXml envelope 입력.
- /// 실샘플 래퍼 = <result> **소문자** (readme §1 확정 — getDerivCombiIssuInfo·getBassetUnredScale 2종만 소문자).
- /// 응답 필드는 BassetContent·UnredSecncnt·UnredRema 3종 — StdDt·StndBassetCd·SecnTpcd 는 배치가 요청 파라미터를 스탬핑.
- /// ⚠️ 실샘플에서 UNRED_REMA 가 빈 value(SeibroXml 이 키 제외 → null) 케이스 존재 — decimal? null 방어. 종목당 1행이라 첫 행만 의미.
- /// </summary>
- public static class SeibroBassetUnredScaleParser
- {
- public sealed record Row(
- string? BassetContent,
- int? UnredSecncnt,
- decimal? UnredRema
- );
- public static IReadOnlyList<Row> Parse(SeibroXml.Envelope envelope)
- {
- var rows = new List<Row>();
- foreach (var fields in envelope.Rows)
- {
- rows.Add(new Row(
- SeibroXml.GetOrNull(fields, "BASSET_CONTENT")?.Trim(),
- SeibroFieldParse.Int(SeibroXml.GetOrNull(fields, "UNRED_SECNCNT")),
- SeibroFieldParse.Decimal(SeibroXml.GetOrNull(fields, "UNRED_REMA"))
- ));
- }
- return rows;
- }
- }
|