2d5d075879
1. Created feature-based folder structure - Components now organized by domain feature 2. Moved all components - 20+ files moved to new locations 3. Updated _Imports.razor - Added all new namespace paths for global component access 4. Updated CustomThemes.cs namespace - Changed from WebApp.Components.Layout to WebApp.Components.Shared.Layout 5. Removed old using directives - Cleaned up Login.razor and Routes.razor 6. Removed empty directories - Cleaned up old folder structure
63 lines
1.9 KiB
Plaintext
63 lines
1.9 KiB
Plaintext
@using Core.Calculation
|
|
|
|
<MudStack>
|
|
<MudText Typo="Typo.h6">@TimeSlotName</MudText>
|
|
@foreach (var team in Teams.OrderBy(e => e.ToString()))
|
|
{
|
|
var removed = !ScheduledTeams.Contains(team);
|
|
|
|
<MudLink Typo="Typo.body1"
|
|
Class="d-flex align-center"
|
|
Color="Color.Default"
|
|
OnClick="@(() => OnToggleTeam.InvokeAsync(team))">
|
|
<MudIcon Icon="@Icons.Material.Filled.Clear"
|
|
Size="Size.Small"
|
|
Class="@(removed ? "" : "d-none")">
|
|
</MudIcon>
|
|
@team -
|
|
@foreach (var student in team.Students)
|
|
{
|
|
var overlap = StudentHasOverlaps(student);
|
|
var isAbsent = AbsentStudents.Contains(student);
|
|
var color = overlap ? Color.Warning : Color.Default;
|
|
var suffix = GetStudentSuffix(overlap, isAbsent);
|
|
|
|
if (student != team.Students.First())
|
|
{
|
|
<MudText>, </MudText>
|
|
}
|
|
<MudText Typo="Typo.body2" Color="@color">
|
|
@student.FirstName@suffix
|
|
</MudText>
|
|
}
|
|
</MudLink>
|
|
}
|
|
</MudStack>
|
|
|
|
@code {
|
|
[Parameter]
|
|
public string TimeSlotName { get; set; } = string.Empty;
|
|
|
|
[Parameter]
|
|
public IEnumerable<Team> Teams { get; set; } = [];
|
|
|
|
[Parameter]
|
|
public IEnumerable<Team> ScheduledTeams { get; set; } = [];
|
|
|
|
[Parameter]
|
|
public IEnumerable<Student> AbsentStudents { get; set; } = [];
|
|
|
|
[Parameter]
|
|
public Func<Student, bool> StudentHasOverlaps { get; set; } = null!;
|
|
|
|
[Parameter]
|
|
public EventCallback<Team> OnToggleTeam { get; set; }
|
|
|
|
private string GetStudentSuffix(bool overlap, bool isAbsent)
|
|
{
|
|
var suffix = overlap ? "*" : "";
|
|
suffix += isAbsent ? " (absent)" : "";
|
|
return suffix;
|
|
}
|
|
}
|