fix: WebUntis-Schülerreport verkraftet fehlenden externKey
Klassenlehrer-Übersicht scheiterte komplett mit "Ungültige Zahl in Spalte externKey", sobald ein Schüler der Klasse keinen gepflegten externen Schlüssel hat (in echten Schuldaten vorkommend). externKey ist jetzt optional statt Pflichtfeld (UntisStudent/UntisStudentDto.ExternKey -> int?); betraf denselben Bericht wie der bestehende WebUntis-Klassenimport, der das aber schon immer beim Weiterimport toleriert hatte. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -23,7 +23,7 @@ public static class WebUntisStudentReportParser
|
||||
values[headers[index]] = index < row.Count ? row[index].Trim() : null;
|
||||
|
||||
var untisId = RequiredInt(Get(values, "id"), "id");
|
||||
var externalKey = RequiredInt(Get(values, "externKey"), "externKey");
|
||||
var externalKey = OptionalInt(Get(values, "externKey"));
|
||||
var name = Optional(Get(values, "name"));
|
||||
var lastName = Optional(Get(values, "longName"));
|
||||
var firstName = Optional(Get(values, "foreName"));
|
||||
@@ -73,6 +73,11 @@ public static class WebUntisStudentReportParser
|
||||
? parsed
|
||||
: throw new InvalidDataException($"Ungültige Zahl in Spalte \"{field}\".");
|
||||
|
||||
private static int? OptionalInt(string? value) =>
|
||||
int.TryParse(value?.Trim(), NumberStyles.Integer, CultureInfo.InvariantCulture, out var parsed)
|
||||
? parsed
|
||||
: null;
|
||||
|
||||
private static int? GermanDate(string? value)
|
||||
{
|
||||
if (!DateOnly.TryParseExact(value?.Trim(), ["dd.MM.yyyy", "yyyyMMdd"], CultureInfo.InvariantCulture,
|
||||
|
||||
Reference in New Issue
Block a user