Refactor StateScheduleHandout component to improve event occurrence filtering and display
This commit is contained in:
@@ -106,12 +106,15 @@ else
|
|||||||
|
|
||||||
<MudContainer Class="pagebreak">
|
<MudContainer Class="pagebreak">
|
||||||
<MudText Typo="Typo.h5" Class="mb-2">Combined schedule</MudText>
|
<MudText Typo="Typo.h5" Class="mb-2">Combined schedule</MudText>
|
||||||
<MudText Typo="Typo.body2" Class="mud-text-secondary mb-3">All imported occurrences for this chapter database.</MudText>
|
<MudText Typo="Typo.body2" Class="mud-text-secondary mb-3">Imported occurrences relevant to this chapter.</MudText>
|
||||||
@if (_allOccurrences.Count == 0)
|
@{
|
||||||
{
|
var combinedOccurrences = GetCombinedScheduleOccurrences().ToList();
|
||||||
<MudText Class="mud-text-secondary">No event occurrences in the database. Import a schedule from the calendar first.</MudText>
|
|
||||||
}
|
}
|
||||||
@foreach (var dateGroup in _allOccurrences.GroupBy(o => o.StartTime.Date))
|
@if (combinedOccurrences.Count == 0)
|
||||||
|
{
|
||||||
|
<MudText Class="mud-text-secondary">No relevant event occurrences found for your current team registrations.</MudText>
|
||||||
|
}
|
||||||
|
@foreach (var dateGroup in combinedOccurrences.GroupBy(o => o.StartTime.Date))
|
||||||
{
|
{
|
||||||
<MudText Typo="Typo.subtitle2" Class="mt-2 mb-1">@FormatDateHeading(dateGroup.Key)</MudText>
|
<MudText Typo="Typo.subtitle2" Class="mt-2 mb-1">@FormatDateHeading(dateGroup.Key)</MudText>
|
||||||
<MudSimpleTable Dense="true" Class="state-schedule-table mb-3">
|
<MudSimpleTable Dense="true" Class="state-schedule-table mb-3">
|
||||||
@@ -242,6 +245,21 @@ else
|
|||||||
.DistinctBy(o => (o.StartTime, o.Name ?? ""));
|
.DistinctBy(o => (o.StartTime, o.Name ?? ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IEnumerable<EventOccurrence> GetCombinedScheduleOccurrences()
|
||||||
|
{
|
||||||
|
return _allOccurrences!
|
||||||
|
.Where(o =>
|
||||||
|
{
|
||||||
|
// Keep chapter-wide/special schedule rows.
|
||||||
|
if (!o.EventDefinitionId.HasValue)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Keep only competition events where this chapter has registered teams.
|
||||||
|
return _teamsByEventDefinitionId.TryGetValue(o.EventDefinitionId.Value, out var teams) && teams.Count > 0;
|
||||||
|
})
|
||||||
|
.OrderBy(o => o.StartTime);
|
||||||
|
}
|
||||||
|
|
||||||
private IEnumerable<EventSummaryRow> GetEventSummaryRows(Student student)
|
private IEnumerable<EventSummaryRow> GetEventSummaryRows(Student student)
|
||||||
{
|
{
|
||||||
foreach (var team in student.Teams.OrderBy(t => t.Event.Name))
|
foreach (var team in student.Teams.OrderBy(t => t.Event.Name))
|
||||||
|
|||||||
Reference in New Issue
Block a user