Refactor TeamScheduler, easier to read and maintain

This commit is contained in:
2025-12-01 06:58:56 -05:00
parent 69dd517d73
commit 3461f94854
7 changed files with 160 additions and 49 deletions
+3 -3
View File
@@ -12,13 +12,13 @@
var allMeetingTeams = schedule.SelectMany(t => t).Distinct();
}
<div class="bluewhite p-5">
<div class="bluewhite p-5">
@{
List<Tuple<Student, IEnumerable<Team>>> overlaps;
List<(Student student, IEnumerable<Team> teams)> overlaps;
}
@foreach (var timeslot in schedule)
{
overlaps = Team.GetStudentTeamOverlaps(timeslot).ToList();
overlaps = TeamSchedulerSolution.GetStudentTeamOverlaps(timeslot).ToList();
var partialTeams = timeslot.Where(t => t is PartialTeam && t.EventDefinition.EventFormat is not EventFormat.Individual);
var fullTeams = timeslot.Where(t => !partialTeams.Contains(t));
@@ -1,5 +1,5 @@
@using Core.Entities
@model Tuple<Core.Entities.Team, List<Tuple<Student, IEnumerable<Team>>>, string[]?>
@model Tuple<Core.Entities.Team, List<(Student student, IEnumerable<Team> teams)>, string[]?>
@{
var team = Model.Item1;
@@ -36,7 +36,7 @@
{
first = false;
}
@if (overlaps.Any(t => t.Item1 == student))
@if (overlaps.Any(t => t.student == student))
{
<span style="color: #F66">@student.FirstName</span>
}