Details Lerngruppe, Archiv, Stub Import

This commit is contained in:
2026-08-11 17:54:10 +02:00
parent 7a1f89cd4a
commit fd715dd5a5
11 changed files with 281 additions and 40 deletions
+45 -5
View File
@@ -23,12 +23,52 @@ public class StudentRepository(LiteDbContext db) : IStudentRepository
public class GroupRepository(LiteDbContext db) : IGroupRepository
{
public LearningGroup? GetById(Guid id) => db.Groups.FindById(id);
public List<LearningGroup> GetAll() =>
db.Groups.FindAll().OrderBy(g => g.SchoolYear).ThenBy(g => g.Name).ToList();
public List<LearningGroup> GetBySchoolYear(string schoolYear) =>
db.Groups.Find(g => g.SchoolYear == schoolYear).OrderBy(g => g.Name).ToList();
public List<LearningGroup> GetAll(bool includeInactive = false) =>
(includeInactive ? db.Groups.FindAll() : db.Groups.Find(g => g.IsActive))
.OrderBy(g => g.SchoolYear).ThenBy(g => g.Name).ToList();
public List<LearningGroup> GetBySchoolYear(string schoolYear, bool includeInactive = false) =>
(includeInactive
? db.Groups.Find(g => g.SchoolYear == schoolYear)
: db.Groups.Find(g => g.SchoolYear == schoolYear && g.IsActive))
.OrderBy(g => g.Name).ToList();
public void Save(LearningGroup g) { g.UpdatedAt = DateTime.UtcNow; db.Groups.Upsert(g); }
public void Delete(Guid id) => db.Groups.Delete(id);
public void Delete(Guid id)
{
foreach (var enrollment in db.Enrollments.Find(e => e.GroupId == id).ToList())
db.Enrollments.Delete(enrollment.Id);
foreach (var exam in db.Exams.Find(e => e.GroupId == id).ToList())
{
foreach (var result in db.ExamResults.Find(r => r.ExamId == exam.Id).ToList())
db.ExamResults.Delete(result.Id);
db.Exams.Delete(exam.Id);
}
foreach (var grade in db.Grades.Find(g => g.GroupId == id).ToList())
db.Grades.Delete(grade.Id);
foreach (var unit in db.Units.Find(u => u.GroupId == id).ToList())
{
foreach (var lesson in db.Lessons.Find(l => l.UnitId == unit.Id).ToList())
db.Lessons.Delete(lesson.Id);
db.Units.Delete(unit.Id);
}
foreach (var lesson in db.Lessons.Find(l => l.GroupId == id).ToList())
db.Lessons.Delete(lesson.Id);
foreach (var session in db.ParticipationSessions.Find(s => s.GroupId == id).ToList())
{
foreach (var entry in db.ParticipationEntries.Find(e => e.SessionId == session.Id).ToList())
db.ParticipationEntries.Delete(entry.Id);
db.ParticipationSessions.Delete(session.Id);
}
foreach (var aspect in db.ParticipationAspects.Find(a => a.GroupId == id).ToList())
db.ParticipationAspects.Delete(aspect.Id);
db.Groups.Delete(id);
}
}
public class EnrollmentRepository(LiteDbContext db) : IEnrollmentRepository