using System.ComponentModel; using LehrerApp.Core.Interfaces; namespace LehrerApp.Desktop.Services.Mcp.Tools; /// MCP-Read-Tool "get_exams" (Phase 1, siehe Planungsdokument). public class ExamTools(IExamRepository exams, IExamResultRepository examResults) { [Description("Listet Klausuren, optional gefiltert nach Lerngruppe.")] public List GetExams( [Description("Optionale Lerngruppen-ID zum Filtern.")] Guid? groupId = null, [Description("Ergebnisse je Schüler mitliefern (Standard: nein, hält die Antwort klein).")] bool includeResults = false) { var list = groupId is { } id ? exams.GetByGroup(id) : exams.GetAll(); return list.Select(e => new ExamDto( e.Id, e.GroupId, e.Title, e.Date, e.Status, e.Niveau, includeResults ? examResults.GetByExam(e.Id) .Select(r => new ExamResultDto(r.StudentId, r.TotalPoints, r.Grade, r.Absent)) .ToList() : null)).ToList(); } }