Add Blazor WebApp and rework data handling to utilize Entity Framework

This commit is contained in:
2025-09-11 11:49:48 -04:00
parent 5220e61c79
commit 3daa3b81b3
111 changed files with 6039 additions and 946 deletions
+9 -9
View File
@@ -19,7 +19,7 @@
@foreach (var timeslot in schedule)
{
overlaps = Team.GetStudentTeamOverlaps(timeslot).ToList();
var partialTeams = timeslot.Where(t => t is PartialTeam && t.Event.Format is not EventFormat.Individual);
var partialTeams = timeslot.Where(t => t is PartialTeam && t.EventDefinition.EventFormat is not EventFormat.Individual);
var fullTeams = timeslot.Where(t => !partialTeams.Contains(t));
<h3>Time Slot @(slot + 1)</h3>
@@ -33,7 +33,7 @@
<th class="col-5"></th>
</thead>
<tbody>
@foreach (var team in fullTeams.Where(t => t.Event.Format is EventFormat.Team).OrderBy(t => t.Name))
@foreach (var team in fullTeams.Where(t => t.EventDefinition.EventFormat is EventFormat.Team).OrderBy(t => t.Name))
{
@await Html.PartialAsync("ScheduleTeamPartial", Tuple.Create(team, overlaps, Model.Item3.AbsentStudents))
}
@@ -58,16 +58,16 @@
}
<h4>Individual</h4>
<p><i>Use time for individual event or to <strong>work on a team event</strong> </i></p>
<p><i>Use time for individual eventDefinition or to <strong>work on a team eventDefinition</strong> </i></p>
<table class="table schedule">
<tbody>
<tr>
@foreach (var team in fullTeams.Where(t => t.Event.Format is EventFormat.Individual).OrderBy(t => t.Name))
@foreach (var team in fullTeams.Where(t => t.EventDefinition.EventFormat is EventFormat.Individual).OrderBy(t => t.Name))
{
<td>
<strong>@team.Captain?.FirstName</strong> (@team.Event.Name@if(team.Event.RegionalEvent){ @* <text> (<i>Regional</i>)</text> *@})
<strong>@team.Captain?.FirstName</strong> (@team.EventDefinition.Name@if(team.EventDefinition.RegionalEvent){ @* <text> (<i>Regional</i>)</text> *@})
</td>
@* @await Html.PartialAsync("ScheduleTeamPartial", Tuple.Create(team, overlaps)) *@
}
@@ -86,14 +86,14 @@
slot++;
}
<h3>Missed team events for today</h3>
<h3>Missed team eventDefinitions for today</h3>
<table class="table schedule">
@foreach (var student in allStudents.OrderBy(s => s.FirstName))
{
var studentMeetings = student.Teams.Where(t => allMeetingTeams.Any(mt => mt.Name == t.Name && mt.Students.Contains(student)));
var studentMissed = student.Teams.Where(t => studentMeetings.All(mt => mt.Name != t.Name)).ToList();
var studentMissedTeams = studentMissed.Where(t => t.Event.Format is EventFormat.Team);
var studentMissedIndividual = studentMissed.Where(t => t.Event.Format is EventFormat.Individual);
var studentMissedTeams = studentMissed.Where(t => t.EventDefinition.EventFormat is EventFormat.Team);
var studentMissedIndividual = studentMissed.Where(t => t.EventDefinition.EventFormat is EventFormat.Individual);
if (studentMissedTeams.Any())
{
<tr>
@@ -121,7 +121,7 @@
{
private void GetTeamClass(Team team)
{
if (team.Event.RegionalEvent)
if (team.EventDefinition.RegionalEvent)
{
@Html.Raw("regional")
;