From 22318e1b9aa018521b373662ce7b1489ccf9d596 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Wed, 15 Nov 2023 22:16:13 +0100 Subject: [PATCH] Dtos: merge under/over delivery with percent column --- Elwig/Models/Dtos/AreaComUnderDeliveyData.cs | 10 +++------- Elwig/Models/Dtos/OverUnderDeliveryData.cs | 13 ++++--------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/Elwig/Models/Dtos/AreaComUnderDeliveyData.cs b/Elwig/Models/Dtos/AreaComUnderDeliveyData.cs index e0959e5..c3f3114 100644 --- a/Elwig/Models/Dtos/AreaComUnderDeliveyData.cs +++ b/Elwig/Models/Dtos/AreaComUnderDeliveyData.cs @@ -19,8 +19,7 @@ namespace Elwig.Models.Dtos { ("Areas", "Fläche", "m²", 16), ("DeliveryObligations", "Lieferpflicht", "kg", 22), ("Weights", "Geliefert", "kg", 22), - ("UnderDeliveries", "Unterliefert", "kg", 22), - ("Percents", "Prozent", "%", 16), + ("UnderDeliveries", "Unterliefert", "kg|%", 34), }; public AreaComUnderDeliveryData(IEnumerable rows, int year) : @@ -61,11 +60,8 @@ namespace Elwig.Models.Dtos { public int[] Areas; public int[] DeliveryObligations; public int[] Weights; - public int?[] UnderDeliveries => Weights.Zip(DeliveryObligations) - .Select(v => v.First < v.Second ? (int?)v.First - v.Second : null) - .ToArray(); - public double?[] Percents => Weights.Zip(DeliveryObligations) - .Select(v => v.First < v.Second ? (double?)v.First * 100.0 / v.Second - 100.0 : null) + public (int? Kg, double? Percent)[] UnderDeliveries => Weights.Zip(DeliveryObligations) + .Select(v => v.First < v.Second ? ((int?, double?))(v.First - v.Second, v.First * 100.0 / v.Second - 100.0) : (null, null)) .ToArray(); public AreaComUnderDeliveryRow(IEnumerable rows) { diff --git a/Elwig/Models/Dtos/OverUnderDeliveryData.cs b/Elwig/Models/Dtos/OverUnderDeliveryData.cs index ed98b11..62e3b9a 100644 --- a/Elwig/Models/Dtos/OverUnderDeliveryData.cs +++ b/Elwig/Models/Dtos/OverUnderDeliveryData.cs @@ -18,8 +18,7 @@ namespace Elwig.Models.Dtos { ("DeliveryObligation", "Lieferpflicht", "kg", 22), ("DeliveryRight", "Lieferrecht", "kg", 22), ("Weight", "Geliefert", "kg", 22), - ("OverUnderDelivery", "Über-/Unterliefert", "kg", 35), - ("Percent", "Prozent", "%", 16), + ("OverUnderDelivery", "Über-/Unterliefert", "kg|%", 34), }; public OverUnderDeliveryData(IEnumerable rows, int year) : @@ -70,12 +69,8 @@ namespace Elwig.Models.Dtos { [Column("sum")] public int Weight { get; set; } [NotMapped] - public int? OverUnderDelivery => - Weight < DeliveryObligation ? Weight - DeliveryObligation : - Weight > DeliveryRight ? Weight - DeliveryRight : null; - [NotMapped] - public double? Percent => - Weight < DeliveryObligation ? Weight * 100.0 / DeliveryObligation - 100.0 : - Weight > DeliveryRight ? Weight * 100.0 / DeliveryRight - 100 : null; + public (int? Kg, double? Percent) OverUnderDelivery => + Weight < DeliveryObligation ? (Weight - DeliveryObligation, Weight * 100.0 / DeliveryObligation - 100.0) : + Weight > DeliveryRight ? (Weight - DeliveryRight, Weight * 100.0 / DeliveryRight - 100) : (null, null); } }