Remove Team.Number

Add Team.Identifier
This commit is contained in:
2025-10-03 12:47:05 -04:00
parent 05e5e69d0b
commit 6407dfca71
15 changed files with 338 additions and 43 deletions
+1 -1
View File
@@ -132,7 +132,7 @@ namespace Core.Calculation
where students.Any()
select new Team
{
TeamId = _events[e].Name,
Identifier = _events[e].Name,
Event = _events[e],
Students = students.ToList()
};
@@ -67,7 +67,7 @@ public class UnassignedStudentScheduler
private IEnumerable<Team> GetAvailableTeams_BiggestGroup(
IEnumerable<Team> scheduledTeams, IEnumerable<Student> assignedStudents) =>
_teams
.Where(t => scheduledTeams.All(st => st.TeamId != t.TeamId))
.Where(t => scheduledTeams.All(st => st.Identifier != t.Identifier))
.Select(t => t.CloneWithOmittedStudents(assignedStudents))
.Where(t => t.Students.Count > 1) //|| t.Event.EventFormat is EventFormat.Individual
//.OrderBy(t => scheduledTeams.Count(st => st.Name == t.Name))
@@ -78,7 +78,7 @@ public class UnassignedStudentScheduler
private IEnumerable<Team> GetAvailableTeams_Individual(
IEnumerable<Team> scheduledTeams, IEnumerable<Student> assignedStudents) =>
_teams
.Where(t => scheduledTeams.All(st => st.TeamId != t.TeamId))
.Where(t => scheduledTeams.All(st => st.Identifier != t.Identifier))
.Where(t => t.Event.EventFormat == EventFormat.Individual || t.Students.Count == 1)
.Select(t => t.CloneWithOmittedStudents(assignedStudents))
.Where(t => t.Students.Count > 0);
@@ -87,7 +87,7 @@ public class UnassignedStudentScheduler
private IEnumerable<Team> GetAvailableTeams_AnyNotMeetingAlready(
IEnumerable<Team> scheduledTeams, IEnumerable<Student> assignedStudents) =>
_teams
.Where(t => scheduledTeams.All(st => st.TeamId != t.TeamId))
.Where(t => scheduledTeams.All(st => st.Identifier != t.Identifier))
.Select(t => t.CloneWithOmittedStudents(assignedStudents))
.Where(t => t.Students.Count > 0);
@@ -102,7 +102,7 @@ public class UnassignedStudentScheduler
private IEnumerable<Team> GetAvailableTeams_LevelOfEffort(
IEnumerable<Team> scheduledTeams, IEnumerable<Student> assignedStudents) =>
_teams
.Where(t => scheduledTeams.All(st => st.TeamId != t.TeamId))
.Where(t => scheduledTeams.All(st => st.Identifier != t.Identifier))
.Select(t => t.CloneWithOmittedStudents(assignedStudents))
.Where(t => t.Students.Count > 1) //|| t.Event.EventFormat is EventFormat.Individual
//.OrderBy(t => scheduledTeams.Count(st => st.Name == t.Name))
@@ -114,7 +114,7 @@ public class UnassignedStudentScheduler
// sort by how many teammembers are already in that timeslot, descending
foreach (var timeslot in _timeSlots.OrderBy(ts => ts.SelectMany(t => t.Students).Count(team.Students.Contains)))
{
if (timeslot.Any(t => t.TeamId == team.TeamId))
if (timeslot.Any(t => t.Identifier == team.Identifier))
continue;
timeslot.Add(team);
break;