ChartWindow: Small fixes

This commit is contained in:
2024-01-04 13:12:48 +01:00
parent 4738cde9e4
commit be87f31211

View File

@ -2,6 +2,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text.Json;
using System.Text.Json.Nodes; using System.Text.Json.Nodes;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows; using System.Windows;
@ -45,9 +46,9 @@ namespace Elwig.Windows {
AvNr = avnr; AvNr = avnr;
var v = Context.PaymentVariants.Find(year, avnr); var v = Context.PaymentVariants.Find(year, avnr);
Title = $"{v?.Name} - Lese {year} - Elwig"; Title = $"{v?.Name} - Lese {year} - Elwig";
ExemptInputs = new Control[] { ExemptInputs = [
GraphList, OechsleInput, PriceInput, FreeZoomInput, GradationLinesInput, TooltipInput GraphList, OechsleInput, PriceInput, FreeZoomInput, GradationLinesInput, TooltipInput
}; ];
} }
private void Window_Loaded(object sender, RoutedEventArgs evt) { private void Window_Loaded(object sender, RoutedEventArgs evt) {
@ -60,15 +61,19 @@ namespace Elwig.Windows {
await RefreshGraphListQuery(); await RefreshGraphListQuery();
} }
private async Task RefreshGraphListQuery(bool updateSort = false) { private static JsonObject? ParseData(PaymentVar variant) {
List<PaymentVar> paymentVars = await Context.PaymentVariants.Where(p => p.Year == Year && p.AvNr == AvNr).ToListAsync(); try {
return JsonNode.Parse(variant.Data)?.AsObject();
if (paymentVars.Count != 1) { } catch (JsonException) {
return; return null;
} }
}
PaymentVar paymentVar = paymentVars[0]; private async Task RefreshGraphListQuery(bool updateSort = false) {
var data = JsonNode.Parse(paymentVar.Data).AsObject(); var paymentVar = await Context.PaymentVariants.FindAsync(Year, AvNr);
if (paymentVar == null) return;
var data = ParseData(paymentVar);
if (data == null) return;
var auszahlungsSorten = data["AuszahlungSorten"]?.AsObject(); var auszahlungsSorten = data["AuszahlungSorten"]?.AsObject();
if (auszahlungsSorten == null) { if (auszahlungsSorten == null) {
@ -81,7 +86,7 @@ namespace Elwig.Windows {
return; return;
} }
List<Graph> GraphsList = new(); List<Graph> GraphsList = [];
int i = 1; int i = 1;
foreach (var graph in Graphs) { foreach (var graph in Graphs) {
@ -97,8 +102,8 @@ namespace Elwig.Windows {
RefreshInputs(); RefreshInputs();
} }
private String ParseContracts(JsonObject auszahlungsSorten, int num) { private string ParseContracts(JsonObject auszahlungsSorten, int num) {
List<string> contracts = new(); List<string> contracts = [];
foreach (var sorte in auszahlungsSorten) { foreach (var sorte in auszahlungsSorten) {
if (sorte.Key == "Kurven") continue; if (sorte.Key == "Kurven") continue;
@ -111,18 +116,14 @@ namespace Elwig.Windows {
} }
} }
return string.Join("\n", contracts.ToArray()); return string.Join("\n", contracts);
} }
private async Task<bool> RemoveGraph(int num) { private async Task<bool> RemoveGraph(int num) {
List<PaymentVar> paymentVars = await Context.PaymentVariants.Where(p => p.Year == Year && p.AvNr == AvNr).ToListAsync(); var paymentVar = await Context.PaymentVariants.FindAsync(Year, AvNr);
if (paymentVar == null) return false;
if (paymentVars.Count != 1) { var data = ParseData(paymentVar);
return false; if (data == null) return false;
}
PaymentVar paymentVar = paymentVars[0];
var data = JsonNode.Parse(paymentVar.Data).AsObject();
var auszahlungsSorten = data["AuszahlungSorten"]?.AsObject(); var auszahlungsSorten = data["AuszahlungSorten"]?.AsObject();
if (auszahlungsSorten == null) { if (auszahlungsSorten == null) {