BillingData: Implement WG Master parsing
This commit is contained in:
@ -35,7 +35,7 @@ namespace Elwig.Helpers.Billing {
|
||||
Data = data;
|
||||
var mode = Data["mode"]?.GetValue<string>();
|
||||
Mode = (mode == "elwig") ? CalculationMode.Elwig : CalculationMode.WgMaster;
|
||||
Curves = GetCurves(data);
|
||||
Curves = GetCurves(Data, Mode);
|
||||
PaymentData = GetPaymentData(attributeVariants);
|
||||
QualityData = GetQualityData(attributeVariants);
|
||||
}
|
||||
@ -83,9 +83,9 @@ namespace Elwig.Helpers.Billing {
|
||||
return dict;
|
||||
}
|
||||
|
||||
public static Dictionary<int, Curve> GetCurves(JsonObject data) {
|
||||
public static Dictionary<int, Curve> GetCurves(JsonObject data, CalculationMode mode) {
|
||||
var dict = new Dictionary<int, Curve>();
|
||||
var curves = data["curves"]?.AsArray() ?? throw new InvalidOperationException();
|
||||
var curves = data[mode == CalculationMode.Elwig ? "curves" : "Kurven"]?.AsArray() ?? throw new InvalidOperationException();
|
||||
foreach (var c in curves) {
|
||||
var obj = c?.AsObject() ?? throw new InvalidOperationException();
|
||||
var id = obj["id"]?.GetValue<int>() ?? throw new InvalidOperationException();
|
||||
@ -145,8 +145,7 @@ namespace Elwig.Helpers.Billing {
|
||||
}
|
||||
|
||||
public Dictionary<string, Curve> GetPaymentData(IEnumerable<string> attributeVariants) {
|
||||
// TODO parse wgmaster
|
||||
var p = Data["payment"];
|
||||
var p = Data[Mode == CalculationMode.Elwig ? "payment" : "AuszahlungSorten"];
|
||||
if (p is JsonValue val) {
|
||||
var c = LookupCurve(val);
|
||||
return attributeVariants.ToDictionary(e => e, _ => c);
|
||||
@ -155,8 +154,7 @@ namespace Elwig.Helpers.Billing {
|
||||
}
|
||||
|
||||
public Dictionary<string, Curve> GetQualityData(IEnumerable<string> attributeVariants) {
|
||||
// TODO parse wgmaster
|
||||
var q = Data["quality"]?.AsObject();
|
||||
var q = Data[Mode == CalculationMode.Elwig ? "quality" : "AuszahlungSortenQualitätsstufe"]?.AsObject();
|
||||
Dictionary<string, Curve> dict = [];
|
||||
if (q == null) return dict;
|
||||
|
||||
|
Reference in New Issue
Block a user