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:
2026-08-25 22:47:04 +02:00
co-authored by Claude Sonnet 5
parent 33c15ffe3e
commit 056e864edd
6 changed files with 34 additions and 4 deletions
@@ -51,6 +51,19 @@ public sealed class WebUntisStudentReportParserTests
Assert.Equal(20270731, student.ExitDate);
}
[Fact]
public void Parse_ErlaubtFehlendenExternKey()
{
// Reale Schuldaten enthalten Schüler*innen ohne gepflegten externen Schlüssel (z.B. frisch
// angelegt) - das darf nicht den Abruf der gesamten Klassenliste zum Absturz bringen.
const string report = "id\texternKey\tklasse.name\r\n17\t\t10a\r\n";
var student = Assert.Single(WebUntisStudentReportParser.Parse(report));
Assert.Equal(17, student.UntisId);
Assert.Null(student.ExternKey);
}
[Fact]
public void Parse_LehntUngueltigePflichtIdAb()
{