[chore:] error-count overview after crafting courses
This commit is contained in:
32
crafter.cs
32
crafter.cs
@@ -166,14 +166,24 @@ public class CourseCrafter
|
|||||||
|
|
||||||
public static string GenerateStatistics()
|
public static string GenerateStatistics()
|
||||||
{
|
{
|
||||||
|
var settings = Settings.Instance;
|
||||||
|
var students = settings.Students;
|
||||||
|
|
||||||
if (GeneratedCourses == null || GeneratedCourses.Count == 0)
|
if (GeneratedCourses == null || GeneratedCourses.Count == 0)
|
||||||
return "Keine Kurse generiert.";
|
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();
|
var sb = new System.Text.StringBuilder();
|
||||||
|
|
||||||
sb.AppendLine($"Anzahl generierter Kurse: {GeneratedCourses.Count}");
|
sb.AppendLine($"Anzahl generierter Kurse: {GeneratedCourses.Count}");
|
||||||
sb.AppendLine("Übersicht:");
|
sb.AppendLine("Übersicht:");
|
||||||
|
|
||||||
|
// ===== Kursübersicht =====
|
||||||
var grouped = GeneratedCourses
|
var grouped = GeneratedCourses
|
||||||
.GroupBy(g => new { g.Semester, g.Instance.Sport.Name })
|
.GroupBy(g => new { g.Semester, g.Instance.Sport.Name })
|
||||||
.OrderBy(g => g.Key.Semester)
|
.OrderBy(g => g.Key.Semester)
|
||||||
@@ -183,21 +193,35 @@ public class CourseCrafter
|
|||||||
{
|
{
|
||||||
int counter = 1;
|
int counter = 1;
|
||||||
|
|
||||||
foreach (var course in group)
|
foreach (var entry in group)
|
||||||
{
|
{
|
||||||
string number = counter.ToString("D2");
|
|
||||||
int semester = group.Key.Semester + 1;
|
int semester = group.Key.Semester + 1;
|
||||||
string sportName = group.Key.Name;
|
string sportName = group.Key.Name;
|
||||||
int studentCount = course.Instance.Students.Count;
|
string number = counter.ToString("D2");
|
||||||
|
int count = entry.Instance.Students.Count;
|
||||||
|
|
||||||
sb.AppendLine(
|
sb.AppendLine(
|
||||||
$"Semester {semester}: {sportName} {number}: {studentCount} Schüler*innen"
|
$"Semester {semester}: {sportName} {number}: {count} Schüler*innen"
|
||||||
);
|
);
|
||||||
|
|
||||||
counter++;
|
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();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user