135 lines
4.1 KiB
C#
135 lines
4.1 KiB
C#
using LehrerApp.Core.Models;
|
|
|
|
namespace LehrerApp.Core.Interfaces;
|
|
|
|
public interface IStudentRepository
|
|
{
|
|
Student? GetById(Guid id);
|
|
List<Student> GetAll(bool includeInactive = false);
|
|
List<Student> GetByGroup(Guid groupId);
|
|
void Save(Student student);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface IGroupRepository
|
|
{
|
|
LearningGroup? GetById(Guid id);
|
|
List<LearningGroup> GetAll(bool includeInactive = false);
|
|
List<LearningGroup> GetBySchoolYear(string schoolYear, bool includeInactive = false);
|
|
void Save(LearningGroup group);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface IGroupMembershipRepository
|
|
{
|
|
List<GroupMembership> GetByStudent(Guid studentId);
|
|
List<GroupMembership> GetByGroup(Guid groupId);
|
|
GroupMembership? GetByStudentAndGroup(Guid studentId, Guid groupId);
|
|
void Save(GroupMembership membership);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface IExamRepository
|
|
{
|
|
Exam? GetById(Guid id);
|
|
List<Exam> GetByGroup(Guid groupId);
|
|
void Save(Exam exam);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface IExamResultRepository
|
|
{
|
|
List<ExamResult> GetByExam(Guid examId);
|
|
List<ExamResult> GetByStudent(Guid studentId);
|
|
ExamResult? GetByExamAndStudent(Guid examId, Guid studentId);
|
|
void Save(ExamResult result);
|
|
void SaveMany(List<ExamResult> results);
|
|
}
|
|
public interface IGradingKeyTemplateRepository
|
|
{
|
|
List<GradingKeyTemplate> GetAll();
|
|
List<GradingKeyTemplate> GetByGradingSystem(GradingSystem system);
|
|
GradingKeyTemplate? GetById(Guid id);
|
|
void Save(GradingKeyTemplate template);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface IGradeRepository
|
|
{
|
|
List<Grade> GetByStudentAndGroup(Guid studentId, Guid groupId);
|
|
List<Grade> GetByGroup(Guid groupId);
|
|
void Save(Grade grade);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface IUnitRepository
|
|
{
|
|
Unit? GetById(Guid id);
|
|
List<Unit> GetByGroup(Guid groupId);
|
|
void Save(Unit unit);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface ILessonRepository
|
|
{
|
|
List<Lesson> GetByUnit(Guid unitId);
|
|
List<Lesson> GetByGroupAndDate(Guid groupId, DateOnly date);
|
|
List<Lesson> GetByGroupAndRange(Guid groupId, DateOnly from, DateOnly to);
|
|
void Save(Lesson lesson);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface IDocumentationRepository
|
|
{
|
|
List<Documentation> GetByStudent(Guid studentId);
|
|
List<Documentation> GetByStudentAndType(Guid studentId, DocumentationType type);
|
|
void Save(Documentation doc);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface IWorkTaskRepository
|
|
{
|
|
List<WorkTask> GetByStatus(WorkTaskStatus status);
|
|
List<WorkTask> GetAll();
|
|
void Save(WorkTask task);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface ITimeEntryRepository
|
|
{
|
|
List<TimeEntry> GetByDate(DateOnly date);
|
|
List<TimeEntry> GetByDateRange(DateOnly from, DateOnly to);
|
|
List<TimeEntry> GetByTask(Guid taskId);
|
|
void Save(TimeEntry entry);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface IParticipationSessionRepository
|
|
{
|
|
List<ParticipationSession> GetByGroup(Guid groupId);
|
|
ParticipationSession? GetById(Guid id);
|
|
void Save(ParticipationSession session);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface IParticipationRepository
|
|
{
|
|
List<ParticipationEntry> GetBySession(Guid sessionId);
|
|
List<ParticipationEntry> GetByStudent(Guid studentId);
|
|
ParticipationEntry? GetBySessionAndStudent(Guid sessionId, Guid studentId);
|
|
void Save(ParticipationEntry entry);
|
|
void SaveMany(List<ParticipationEntry> entries);
|
|
void DeleteBySession(Guid sessionId);
|
|
}
|
|
public interface IParticipationAspectRepository
|
|
{
|
|
List<ParticipationAspect> GetDefaults();
|
|
List<ParticipationAspect> GetByGroup(Guid groupId);
|
|
void Save(ParticipationAspect aspect);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface ISubjectRepository
|
|
{
|
|
List<Subject> GetAll();
|
|
Subject? GetById(Guid id);
|
|
Subject? GetByName(string name);
|
|
void Save(Subject subject);
|
|
void Delete(Guid id);
|
|
}
|
|
public interface ICompetencyDomainRepository
|
|
{
|
|
List<CompetencyDomain> GetBySubjectAndGrade(Guid subjectId, int gradeLevel);
|
|
CompetencyDomain? GetById(Guid id);
|
|
void Save(CompetencyDomain domain);
|
|
void Delete(Guid id);
|
|
void DeleteBySubjectAndGrade(Guid subjectId, int gradeLevel);
|
|
}
|