Add class-teacher slots on SchoolClass with owner-only assign/clear.
EOF Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -286,6 +286,23 @@ internal sealed class GameLoopService(
|
||||
unassign.Result);
|
||||
break;
|
||||
|
||||
case GameCommand.AssignClassTeacher assignClassTeacher:
|
||||
HandleClassTeacher(
|
||||
assignClassTeacher.SchoolId,
|
||||
new WorkerCommand.AssignClassTeacher(
|
||||
assignClassTeacher.ClassId,
|
||||
assignClassTeacher.PersonId,
|
||||
assignClassTeacher.Result),
|
||||
assignClassTeacher.Result);
|
||||
break;
|
||||
|
||||
case GameCommand.ClearClassTeacher clearClassTeacher:
|
||||
HandleClassTeacher(
|
||||
clearClassTeacher.SchoolId,
|
||||
new WorkerCommand.ClearClassTeacher(clearClassTeacher.ClassId, clearClassTeacher.Result),
|
||||
clearClassTeacher.Result);
|
||||
break;
|
||||
|
||||
case GameCommand.PinLesson pin:
|
||||
HandleTimetable(
|
||||
pin.SchoolId,
|
||||
@@ -385,6 +402,14 @@ internal sealed class GameLoopService(
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleClassTeacher(int schoolId, WorkerCommand command, TaskCompletionSource<ClassTeacherOutcome> result)
|
||||
{
|
||||
if (!_workers.TryGetValue(schoolId, out var worker) || !worker.Post(command))
|
||||
{
|
||||
result.TrySetResult(ClassTeachers.UnknownSchool());
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleTimetable(int schoolId, WorkerCommand command, TaskCompletionSource<TimetableOutcome> result)
|
||||
{
|
||||
if (!_workers.TryGetValue(schoolId, out var worker) || !worker.Post(command))
|
||||
|
||||
Reference in New Issue
Block a user