@page "/teams/handout"
@attribute [Authorize]
@using Microsoft.EntityFrameworkCore
@using WebApp.Models
@using WebApp.Components.Shared.Components
@using Core.Utility
@inject IConfiguration Configuration
@inject AppDbContext Context
@if (_teams == null || _students == null)
{
Loading...
}
else
{
@foreach (var studentForEvents in _students)
{
@studentForEvents.Name
@foreach (var team in studentForEvents.Teams)
{
@team.ToString()
@if (team.Event.RegionalEvent)
{
Regional Event
}
@team.Event.EventFormat
Effort: @AppIcons.LevelOfEffortIcon(@team.Event.LevelOfEffort)
Activity: @team.Event.SemifinalistActivity
@if (team.Event.EventFormat == EventFormat.Team)
{
Team Members: @TeamStudentNameFormatter.FormatStudentList(
team,
new TeamStudentNameFormatter.FormatOptions
{
Ordering = TeamStudentNameFormatter.OrderingStyle.GradeDescending
})
}
@team.Event.Description
@if (!string.IsNullOrEmpty(team.Event.Theme))
{
Theme for 2025-26:
@team.Event.Theme
}
@if (!string.IsNullOrEmpty(team.Event.Documentation))
{
Materials:
@team.Event.Documentation
}
}
}
}
@code {
private Team[]? _teams;
private int _maxTeamSize;
private Student[]? _students;
protected override async Task OnInitializedAsync()
{
_teams
= await Context.Teams
.Include(e => e.Event)
.Include(e => e.Students)
.OrderBy(e => e.Event.Name)
.ThenBy(e => e.Identifier)
.ToArrayAsync();
_maxTeamSize = _teams.Max(t => t.Students.Count);
_students =
await Context.Students
.Include(e => e.Teams)
.ThenInclude(e => e.Captain)
.Include(e => e.EventRankings)
.ThenInclude(e => e.EventDefinition)
.OrderBy(e => e.FirstName).ToArrayAsync();
}
}