diff --git a/WebApp/Components/Pages/MeetingSchedulePages/Scheduler.razor b/WebApp/Components/Pages/MeetingSchedulePages/Scheduler.razor
index 3a1aed9..105aeb5 100644
--- a/WebApp/Components/Pages/MeetingSchedulePages/Scheduler.razor
+++ b/WebApp/Components/Pages/MeetingSchedulePages/Scheduler.razor
@@ -1,5 +1,6 @@
@using Core.Calculation
@using Microsoft.EntityFrameworkCore
+@using NuGet.Packaging
@page "/meeting-schedule/scheduler"
@inject IConfiguration Configuration
@inject AppDbContext Context
@@ -10,56 +11,77 @@
+ Include: @string.Join(", ", _requiredTeams)
-
+
+
+ Add Regionals
+ Remove Individual
+
+
+ @foreach (var team in _teams.OrderBy(e => e.Event.Name))
+ {
+
+ }
+
+
+
+
-
- Require Regionals
-
-
- Solve
-
+ @* *@
+
+ Time Slots
+ Solve
+
+
-
-Time Slots
-
-
-
-
-
-
- @{
- var ol = TeamSchedulerSolution.GetStudentTeamOverlaps(context);}
- @foreach (var t in context)
- {
-
- @t.ToString() -
- @string.Join(", ", t.Students.Select(s => s.FirstName + " " + (ol.Any(o => o.Item1.Equals(s)) ? "*" : "" )) )
-
- }
- @* @foreach (var overlap in ol)
+
+
+
+ @{
+ var ol = TeamSchedulerSolution.GetStudentTeamOverlaps(context);
+ }
+ @foreach (var t in context)
+ {
+
+ @t.ToString() -
+ @string.Join(", ", t.Students.Select(s => s.FirstName + " " + (ol.Any(o => o.Item1.Equals(s)) ? "*" : "")))
+
+ }
+ @* @foreach (var overlap in ol)
{
@string.Join(", ", overlap.Item1)
} *@
-
- @{ var notInTimeSLot = TeamSchedulerSolution.GetStudentsNotInTimSlot(context, _students); }
- @if (notInTimeSLot.Any()) {
-
-
- Not scheduled: @string.Join(", ", notInTimeSLot.Select(s => s.FirstName))
-
-
- }
-
-
-
-
+ @{ var notInTimeSLot = TeamSchedulerSolution.GetStudentsNotInTimSlot(context, _students); }
+ @if (notInTimeSLot.Any())
+ {
+
+
+ Not scheduled: @string.Join(", ", notInTimeSLot.Select(s => s.FirstName))
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
@code {
private Team[]? _teams;
@@ -68,14 +90,24 @@
private TeamSchedulerSolution _solution;
private TeamSchedulerOptions _parameters;
bool _isSolving = false;
- private HashSet _requiredTeams = [];
+ private IEnumerable _requiredTeams = [];
+ //private Team[] _requiredTeams = [];
- private void RequireRegionals()
+ private void OnSelectedValuesChanged(IEnumerable obj)
{
- foreach (var team in _teams.Where(e => e.Event.RegionalEvent))
- {
- _requiredTeams.Add(team);
- }
+ _requiredTeams = obj.ToList();
+ }
+
+ private void AddRegionals()
+ {
+ _requiredTeams
+ = _teams.Where(e => e.Event.RegionalEvent).Concat(_requiredTeams).Distinct();
+ }
+
+ private void RemoveIndividual()
+ {
+ _requiredTeams
+ = _requiredTeams.Where(t => t.Event.EventFormat != EventFormat.Individual);
}
protected override async Task OnInitializedAsync()
@@ -129,10 +161,6 @@
private async Task> SolveSchedule(TableState arg1, CancellationToken arg2)
{
- //_isSolving = true;
-
-
-
var requiredTeams = _teams;
var teamScheduler = new TeamScheduler(_requiredTeams, _parameters.TimeSlots);
@@ -155,4 +183,5 @@
{
_solutionData.ReloadServerData();
}
+
}