From aec57d7d9d6fbfb94fe05f7f22270ea7c3309e35 Mon Sep 17 00:00:00 2001 From: Elias Fierke Date: Tue, 3 Mar 2026 14:58:23 +0100 Subject: [PATCH] [chore:] error-count overview after crafting courses --- crafter.cs | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/crafter.cs b/crafter.cs index b1e63ac..c603158 100644 --- a/crafter.cs +++ b/crafter.cs @@ -166,14 +166,24 @@ public class CourseCrafter public static string GenerateStatistics() { + var settings = Settings.Instance; + var students = settings.Students; + if (GeneratedCourses == null || GeneratedCourses.Count == 0) return "Keine Kurse generiert."; + int semesterCount = students + .Where(s => s.Result != null) + .Select(s => s.Result!.Count) + .DefaultIfEmpty(0) + .Max(); + var sb = new System.Text.StringBuilder(); sb.AppendLine($"Anzahl generierter Kurse: {GeneratedCourses.Count}"); sb.AppendLine("Übersicht:"); + // ===== Kursübersicht ===== var grouped = GeneratedCourses .GroupBy(g => new { g.Semester, g.Instance.Sport.Name }) .OrderBy(g => g.Key.Semester) @@ -183,21 +193,35 @@ public class CourseCrafter { int counter = 1; - foreach (var course in group) + foreach (var entry in group) { - string number = counter.ToString("D2"); int semester = group.Key.Semester + 1; string sportName = group.Key.Name; - int studentCount = course.Instance.Students.Count; + string number = counter.ToString("D2"); + int count = entry.Instance.Students.Count; sb.AppendLine( - $"Semester {semester}: {sportName} {number}: {studentCount} Schüler*innen" + $"Semester {semester}: {sportName} {number}: {count} Schüler*innen" ); counter++; } } + sb.AppendLine(); + sb.AppendLine("Fehlerübersicht:"); + + // ===== Fehler pro Semester ===== + for (int sem = 0; sem < semesterCount; sem++) + { + int errors = students.Count(st => + st.Result != null && + st.Result.Count > sem && + st.Result[sem] == "Fehler"); + + sb.AppendLine($"Semester {sem + 1}: {errors} Fehler"); + } + return sb.ToString(); } }