@page "/teams/printout" @attribute [Authorize] @using Microsoft.EntityFrameworkCore @using WebApp.Models @using WebApp.Components.Shared.Components @inject IConfiguration Configuration @inject AppDbContext Context @if (_teams == null) {

Loading...

} else { Team @for (var i = 0; i <= _maxTeamSize; i++) { } @context.ToString() @{ var students = context.Students .OrderByDescending(s => s == context.Captain) .ThenBy(s => s.EventRankings.Find(e => e.EventDefinition == context.Event)?.Rank ?? int.MaxValue) .ThenByDescending(e => e.Grade) .ThenBy(e => e.FirstName) .ToArray(); } @for (var i = 0; i <= _maxTeamSize; i++) { var student = i < students.Length ? students[i] : null; if (student != null) { var rank = student.EventRankings .Find(e => e.EventDefinition == context.Event)?.Rank ?? int.MaxValue; @student.Name @if(context?.Captain == student) { (Cpt)} } else { } } @if (context.Event.EventFormat == EventFormat.Team) { @if (context.Students.Count < context.Event.MinTeamSize) { Min Team Size: @context.Event.MinTeamSize } @if (context.Students.Count > context.Event.MaxTeamSize) { Max Team Size: @context.Event.MaxTeamSize } } else if (context.Event.EventFormat == EventFormat.Individual && context.Students.Count > context.Event.ChapterEligibilityCountState) { Max Team Count State: @context.Event.ChapterEligibilityCountState } Student Effort @for (var i = 0; i <= 5; i++) { } @context.Name @context.Teams.Sum(e => e.Event.LevelOfEffort) @{ var teams = context.Teams .OrderBy(e => context.EventRankings.Find(ser => ser.EventDefinition == e.Event)?.Rank ?? int.MaxValue ).ToArray(); } @for (var i = 0; i <= 5; i++) { var team = i < teams.Length ? teams[i] : null; @if (team != null) { var rank = context.EventRankings .Find(e => e.EventDefinition == team.Event)?.Rank ?? int.MaxValue; @team.ToString() @if (rank == int.MaxValue) { } } else { } } @if (!context.Teams.Select(e => e.Event).Any(re => re.OnSiteActivity)) { No On-Site Activity } @if (!context.Teams.Select(e => e.Event).Any(re => re.RegionalEvent)) { No Regional Event } Student Grade, TSA Year Level of Effort @context.Name @AppIcons.GetOrdinal(context.Grade), @context.TsaYear @context.Teams.Sum(e => e.Event.LevelOfEffort) @if (!context.Teams.Select(e => e.Event).Any(re => re.OnSiteActivity)) { No On-Site Activity } @if (!context.Teams.Select(e => e.Event).Any(re => re.RegionalEvent)) { No Regional Event } @{ var rank = context.EventRankings .Find(e => e.EventDefinition == team.Event)?.Rank ?? int.MaxValue; } @team.ToString() @AppIcons.EventEffort(team.Event) @AppIcons.EventAttributes(team.Event) @if (rank == int.MaxValue) { } @string.Join(", ", team.Students.Where(e => e != context).Select(e => e.FirstName)) } @code { private Team[]? _teams; private int _maxTeamSize; private Student[]? _students; private bool _rankColorEnabled = false; private string EventRankClass(int rank) { if (!_rankColorEnabled) return ""; return "event-rank-" + rank; } protected override async Task OnInitializedAsync() { _teams = await Context.Teams .Include(e => e.Event) .Include(e => e.Students) .OrderByEventFormatFirst() .ThenBy(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(); } }