This commit is contained in:
2025-10-02 15:29:26 -04:00
22 changed files with 553 additions and 353 deletions
@@ -27,21 +27,20 @@
}
</MudRadioGroup>
<ValidationMessage For="() => EventDefinition.EventFormat" class="text-danger" />
<MudTextField T="string" Label="Theme" AutoGrow="true" @bind-Value="EventDefinition.Description" For="@(() => EventDefinition.Description)"></MudTextField>
<MudTextField T="string" Label="Theme" AutoGrow="true" @bind-Value="EventDefinition.Theme" For="@(() => EventDefinition.Theme)"></MudTextField>
<MudTextField T="string" Label="Documentation" @bind-Value="EventDefinition.Documentation" For="@(() => EventDefinition.Documentation)"></MudTextField>
<MudNumericField T="int?" Label="Level of Effort" @bind-Value="EventDefinition.LevelOfEffort" For="@(() => EventDefinition.LevelOfEffort)"></MudNumericField>
<MudDivider></MudDivider>
<MudTextField T="string" Label="Nationals Eligibility" @bind-Value="EventDefinition.Eligibility" For="@(() => EventDefinition.Eligibility)"></MudTextField>
<MudNumericField T="int" Label="Minimum Team Size" @bind-Value="EventDefinition.MinTeamSize" For="@(() => EventDefinition.MinTeamSize)"></MudNumericField>
<MudNumericField T="int" Label="Maxiumum Team Size" @bind-Value="EventDefinition.MaxTeamSize" For="@(() => EventDefinition.MaxTeamSize)"></MudNumericField>
<MudNumericField T="int" Label="Maxiumum Team Count at State" @bind-Value="EventDefinition.MaxTeamCountState" For="@(() => EventDefinition.MaxTeamCountState)"></MudNumericField>
<MudNumericField T="int" Label="Team Count at Regionals" @bind-Value="EventDefinition.ChapterEligibilityCountRegionals" For="@(() => EventDefinition.ChapterEligibilityCountRegionals)"></MudNumericField>
<MudNumericField T="int" Label="Team Count at State" @bind-Value="EventDefinition.ChapterEligibilityCountState" For="@(() => EventDefinition.ChapterEligibilityCountState)"></MudNumericField>
<MudDivider></MudDivider>
<MudTextField T="string" Label="Semifinalist Activity" @bind-Value="EventDefinition.SemifinalistActivity" For="@(() => EventDefinition.SemifinalistActivity)"></MudTextField>
<MudCheckBox T="bool" Label="Regional Event" @bind-Value="EventDefinition.RegionalEvent" For="@(() => EventDefinition.RegionalEvent)"></MudCheckBox>
<MudCheckBox T="bool" Label="Requires Presubmission" @bind-Value="EventDefinition.StatePresubmission" For="@(() => EventDefinition.StatePresubmission)"></MudCheckBox>
<MudCheckBox T="bool" Label="Preliminary Round" @bind-Value="EventDefinition.StatePreliminaryRound" For="@(() => EventDefinition.StatePreliminaryRound)"></MudCheckBox>
<MudTextField T="string" Label="Eligibility" @bind-Value="EventDefinition.Eligibility" For="@(() => EventDefinition.Eligibility)"></MudTextField>
<MudCheckBox T="bool" Label="On Site Activity" @bind-Value="EventDefinition.OnSiteActivity" For="@(() => EventDefinition.OnSiteActivity)"></MudCheckBox>
<MudCheckBox T="bool" Label="Requires Presubmission" @bind-Value="EventDefinition.Presubmission" For="@(() => EventDefinition.Presubmission)"></MudCheckBox>
</MudPaper>
</MudItem>
</MudGrid>
@@ -1,120 +0,0 @@
@page "/events/delete"
@using Microsoft.EntityFrameworkCore
@inject AppDbContext context
@inject NavigationManager NavigationManager
<PageTitle>Delete</PageTitle>
<h1>Delete</h1>
<p>Are you sure you want to delete this?</p>
<div>
<h2>EventDefinition</h2>
<hr />
@if (eventdefinition is null)
{
<p><em>Loading...</em></p>
}
else {
<dl class="row">
<dt class="col-sm-2">Name</dt>
<dd class="col-sm-10">@eventdefinition.Name</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">Short Name</dt>
<dd class="col-sm-10">@eventdefinition.ShortName</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">Event Format</dt>
<dd class="col-sm-10">@eventdefinition.EventFormat</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">Min Team Size</dt>
<dd class="col-sm-10">@eventdefinition.MinTeamSize</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">Max Team Size</dt>
<dd class="col-sm-10">@eventdefinition.MaxTeamSize</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">SemifinalistActivity</dt>
<dd class="col-sm-10">@eventdefinition.SemifinalistActivity</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">Notes</dt>
<dd class="col-sm-10">@eventdefinition.Notes</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">MaxTeamCountState</dt>
<dd class="col-sm-10">@eventdefinition.MaxTeamCountState</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">RegionalEvent</dt>
<dd class="col-sm-10">@eventdefinition.RegionalEvent</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">RegionalPresubmit</dt>
<dd class="col-sm-10">@eventdefinition.RegionalPresubmit</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">StatePresubmission</dt>
<dd class="col-sm-10">@eventdefinition.StatePresubmission</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">StatePretesting</dt>
<dd class="col-sm-10">@eventdefinition.StatePretesting</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">StatePreliminaryRound</dt>
<dd class="col-sm-10">@eventdefinition.StatePreliminaryRound</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">Documentation</dt>
<dd class="col-sm-10">@eventdefinition.Documentation</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">Eligibility</dt>
<dd class="col-sm-10">@eventdefinition.Eligibility</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">Theme</dt>
<dd class="col-sm-10">@eventdefinition.Theme</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">Description</dt>
<dd class="col-sm-10">@eventdefinition.Description</dd>
</dl>
<dl class="row">
<dt class="col-sm-2">LevelOfEffort</dt>
<dd class="col-sm-10">@eventdefinition.LevelOfEffort</dd>
</dl>
<EditForm method="post" Model="eventdefinition" OnValidSubmit="DeleteEventDefinition" FormName="delete" Enhance>
<button type="submit" class="btn btn-danger" disabled="@(eventdefinition is null)">Delete</button> |
<a href="/events">Back to List</a>
</EditForm>
}
</div>
@code {
private EventDefinition? eventdefinition;
[SupplyParameterFromQuery]
private int Id { get; set; }
protected override async Task OnInitializedAsync()
{
eventdefinition = await context.Events.FirstOrDefaultAsync(m => m.Id == Id);
if (eventdefinition is null)
{
NavigationManager.NavigateTo("notfound");
}
}
private async Task DeleteEventDefinition()
{
context.Events.Remove(eventdefinition!);
await context.SaveChangesAsync();
NavigationManager.NavigateTo("/events");
}
}
@@ -30,18 +30,18 @@
<dd class="col-sm-10">@eventdefinition.SemifinalistActivity</dd>
<dt class="col-sm-2">Notes</dt>
<dd class="col-sm-10">@eventdefinition.Notes</dd>
<dt class="col-sm-2">MaxTeamCountState</dt>
<dd class="col-sm-10">@eventdefinition.MaxTeamCountState</dd>
<dt class="col-sm-2">ChapterEligibilityCountState</dt>
<dd class="col-sm-10">@eventdefinition.ChapterEligibilityCountState</dd>
<dt class="col-sm-2">RegionalEvent</dt>
<dd class="col-sm-10">@eventdefinition.RegionalEvent</dd>
<dt class="col-sm-2">RegionalPresubmit</dt>
<dd class="col-sm-10">@eventdefinition.RegionalPresubmit</dd>
<dt class="col-sm-2">StatePresubmission</dt>
<dd class="col-sm-10">@eventdefinition.StatePresubmission</dd>
@* <dd class="col-sm-10">@eventdefinition.RegionalPresubmit</dd> *@
<dt class="col-sm-2">Presubmission</dt>
<dd class="col-sm-10">@eventdefinition.Presubmission</dd>
<dt class="col-sm-2">StatePretesting</dt>
<dd class="col-sm-10">@eventdefinition.StatePretesting</dd>
@* <dd class="col-sm-10">@eventdefinition.StatePretesting</dd> *@
<dt class="col-sm-2">StatePreliminaryRound</dt>
<dd class="col-sm-10">@eventdefinition.StatePreliminaryRound</dd>
@* <dd class="col-sm-10">@eventdefinition.StatePreliminaryRound</dd> *@
<dt class="col-sm-2">Documentation</dt>
<dd class="col-sm-10">@eventdefinition.Documentation</dd>
<dt class="col-sm-2">Eligibility</dt>
@@ -1,132 +1,54 @@
@page "/events/edit"
@using Microsoft.EntityFrameworkCore
@using Core.Entities
@using Data
@inject AppDbContext context
@inject NavigationManager NavigationManager
<PageTitle>Edit</PageTitle>
<PageTitle>Edit Event - TSA Chapter Organizer</PageTitle>
<h1>Edit</h1>
<MudText Typo="Typo.h3">Edit</MudText>
<MudText Typo="Typo.h4">Event</MudText>
<MudDivider />
<h2>EventDefinition</h2>
<hr />
@if (EventDefinition is null)
{
<p><em>Loading...</em></p>
}
else
{
<div class="row">
<div class="col-md-4">
<EditForm method="post" Model="EventDefinition" OnValidSubmit="UpdateEventDefinition" FormName="edit" Enhance>
<DataAnnotationsValidator />
<ValidationSummary role="alert"/>
<input type="hidden" name="EventDefinition.Id" value="@EventDefinition.Id" />
<div class="mb-3">
<label for="name" class="form-label">Name:</label>
<InputText id="name" @bind-Value="EventDefinition.Name" class="form-control" />
<ValidationMessage For="() => EventDefinition.Name" class="text-danger" />
</div>
<div class="mb-3">
<label for="shortname" class="form-label">ShortName:</label>
<InputText id="shortname" @bind-Value="EventDefinition.ShortName" class="form-control" />
<ValidationMessage For="() => EventDefinition.ShortName" class="text-danger" />
</div>
<div class="mb-3">
<label for="eventformat" class="form-label">EventFormat:</label>
<InputSelect @bind-Value="@EventDefinition.EventFormat">
@foreach (var format in Enum.GetValues(typeof(EventFormat)))
{
<option value="@format">@(@format.ToString())</option>
}
</InputSelect>
<ValidationMessage For="() => EventDefinition.EventFormat" class="text-danger" />
</div>
<div class="mb-3">
<label for="minteamsize" class="form-label">MinTeamSize:</label>
<InputNumber id="minteamsize" @bind-Value="EventDefinition.MinTeamSize" class="form-control" />
<ValidationMessage For="() => EventDefinition.MinTeamSize" class="text-danger" />
</div>
<div class="mb-3">
<label for="maxteamsize" class="form-label">MaxTeamSize:</label>
<InputNumber id="maxteamsize" @bind-Value="EventDefinition.MaxTeamSize" class="form-control" />
<ValidationMessage For="() => EventDefinition.MaxTeamSize" class="text-danger" />
</div>
<div class="mb-3">
<label for="semifinalistactivity" class="form-label">SemifinalistActivity:</label>
<InputText id="semifinalistactivity" @bind-Value="EventDefinition.SemifinalistActivity" class="form-control" />
<ValidationMessage For="() => EventDefinition.SemifinalistActivity" class="text-danger" />
</div>
<div class="mb-3">
<label for="notes" class="form-label">Notes:</label>
<InputText id="notes" @bind-Value="EventDefinition.Notes" class="form-control" />
<ValidationMessage For="() => EventDefinition.Notes" class="text-danger" />
</div>
<div class="mb-3">
<label for="maxteamcountstate" class="form-label">MaxTeamCountState:</label>
<InputNumber id="maxteamcountstate" @bind-Value="EventDefinition.MaxTeamCountState" class="form-control" />
<ValidationMessage For="() => EventDefinition.MaxTeamCountState" class="text-danger" />
</div>
<div class="mb-3">
<label for="regionalevent" class="form-label">RegionalEvent:</label>
<InputCheckbox id="regionalevent" @bind-Value="EventDefinition.RegionalEvent" class="form-check-input" />
<ValidationMessage For="() => EventDefinition.RegionalEvent" class="text-danger" />
</div>
<div class="mb-3">
<label for="regionalpresubmit" class="form-label">RegionalPresubmit:</label>
<InputCheckbox id="regionalpresubmit" @bind-Value="EventDefinition.RegionalPresubmit" class="form-check-input" />
<ValidationMessage For="() => EventDefinition.RegionalPresubmit" class="text-danger" />
</div>
<div class="mb-3">
<label for="statepresubmission" class="form-label">StatePresubmission:</label>
<InputCheckbox id="statepresubmission" @bind-Value="EventDefinition.StatePresubmission" class="form-check-input" />
<ValidationMessage For="() => EventDefinition.StatePresubmission" class="text-danger" />
</div>
<div class="mb-3">
<label for="statepretesting" class="form-label">StatePretesting:</label>
<InputCheckbox id="statepretesting" @bind-Value="EventDefinition.StatePretesting" class="form-check-input" />
<ValidationMessage For="() => EventDefinition.StatePretesting" class="text-danger" />
</div>
<div class="mb-3">
<label for="statepreliminaryround" class="form-label">StatePreliminaryRound:</label>
<InputCheckbox id="statepreliminaryround" @bind-Value="EventDefinition.StatePreliminaryRound" class="form-check-input" />
<ValidationMessage For="() => EventDefinition.StatePreliminaryRound" class="text-danger" />
</div>
<div class="mb-3">
<label for="documentation" class="form-label">Documentation:</label>
<InputText id="documentation" @bind-Value="EventDefinition.Documentation" class="form-control" />
<ValidationMessage For="() => EventDefinition.Documentation" class="text-danger" />
</div>
<div class="mb-3">
<label for="eligibility" class="form-label">Eligibility:</label>
<InputText id="eligibility" @bind-Value="EventDefinition.Eligibility" class="form-control" />
<ValidationMessage For="() => EventDefinition.Eligibility" class="text-danger" />
</div>
<div class="mb-3">
<label for="theme" class="form-label">Theme:</label>
<InputText id="theme" @bind-Value="EventDefinition.Theme" class="form-control" />
<ValidationMessage For="() => EventDefinition.Theme" class="text-danger" />
</div>
<div class="mb-3">
<label for="description" class="form-label">Description:</label>
<InputText id="description" @bind-Value="EventDefinition.Description" class="form-control" />
<ValidationMessage For="() => EventDefinition.Description" class="text-danger" />
</div>
<div class="mb-3">
<label for="levelofeffort" class="form-label">LevelOfEffort:</label>
<InputNumber id="levelofeffort" @bind-Value="EventDefinition.LevelOfEffort" class="form-control" />
<ValidationMessage For="() => EventDefinition.LevelOfEffort" class="text-danger" />
</div>
<button type="submit" class="btn btn-primary">Save</button>
</EditForm>
</div>
</div>
}
<div>
<a href="/events">Back to List</a>
</div>
<EditForm Model="EventDefinition" OnValidSubmit="OnValidSubmit" Enhance>
<DataAnnotationsValidator />
<MudGrid>
<MudItem xs="12" sm="7">
<MudPaper Class="pa-4">
<MudTextField T="string" Label="Event Name" @bind-Value="EventDefinition.Name" For="@(() => EventDefinition.Name)"></MudTextField>
<MudTextField T="string" Label="Short Name" @bind-Value="EventDefinition.ShortName" For="@(() => EventDefinition.ShortName)"></MudTextField>
<label for="@EventDefinition.EventFormat" class="form-label">Format:</label>
<MudRadioGroup T="EventFormat" @bind-Value="@EventDefinition.EventFormat">
@* <MudRadio T="EventFormat" Value="EventFormat.Team">Team</MudRadio>
<MudRadio T="EventFormat" Value="EventFormat.Individual">Individual</MudRadio> *@
@foreach (EventFormat format in Enum.GetValues(typeof(EventFormat)))
{
<MudRadio T="EventFormat" value="@format">@(format.ToString())</MudRadio>
}
</MudRadioGroup>
<ValidationMessage For="() => EventDefinition.EventFormat" class="text-danger" />
<MudTextField T="string" Label="Theme" AutoGrow="true" @bind-Value="EventDefinition.Description" For="@(() => EventDefinition.Description)"></MudTextField>
<MudTextField T="string" Label="Theme" AutoGrow="true" @bind-Value="EventDefinition.Theme" For="@(() => EventDefinition.Theme)"></MudTextField>
<MudTextField T="string" Label="Documentation" @bind-Value="EventDefinition.Documentation" For="@(() => EventDefinition.Documentation)"></MudTextField>
<MudNumericField T="int?" Label="Level of Effort" @bind-Value="EventDefinition.LevelOfEffort" For="@(() => EventDefinition.LevelOfEffort)"></MudNumericField>
<MudDivider></MudDivider>
<MudTextField T="string" Label="Nationals Eligibility" @bind-Value="EventDefinition.Eligibility" For="@(() => EventDefinition.Eligibility)"></MudTextField>
<MudNumericField T="int" Label="Minimum Team Size" @bind-Value="EventDefinition.MinTeamSize" For="@(() => EventDefinition.MinTeamSize)"></MudNumericField>
<MudNumericField T="int" Label="Maxiumum Team Size" @bind-Value="EventDefinition.MaxTeamSize" For="@(() => EventDefinition.MaxTeamSize)"></MudNumericField>
<MudNumericField T="int" Label="Team Count at Regionals" @bind-Value="EventDefinition.ChapterEligibilityCountRegionals" For="@(() => EventDefinition.ChapterEligibilityCountRegionals)"></MudNumericField>
<MudNumericField T="int" Label="Team Count at State" @bind-Value="EventDefinition.ChapterEligibilityCountState" For="@(() => EventDefinition.ChapterEligibilityCountState)"></MudNumericField>
<MudDivider></MudDivider>
<MudTextField T="string" Label="Semifinalist Activity" @bind-Value="EventDefinition.SemifinalistActivity" For="@(() => EventDefinition.SemifinalistActivity)"></MudTextField>
<MudCheckBox T="bool" Label="On Site Activity" @bind-Value="EventDefinition.OnSiteActivity" For="@(() => EventDefinition.OnSiteActivity)"></MudCheckBox>
<MudCheckBox T="bool" Label="Requires Presubmission" @bind-Value="EventDefinition.Presubmission" For="@(() => EventDefinition.Presubmission)"></MudCheckBox>
</MudPaper>
</MudItem>
</MudGrid>
<MudButton StartIcon="@Icons.Material.Filled.ArrowBack" Href="events">Back</MudButton>
<MudButton ButtonType="ButtonType.Submit" StartIcon="@Icons.Material.Filled.Save">Save</MudButton>
</EditForm>
@code {
[SupplyParameterFromQuery]
@@ -147,13 +69,13 @@ else
// To protect from overposting attacks, enable the specific properties you want to bind to.
// For more information, see https://learn.microsoft.com/aspnet/core/blazor/forms/#mitigate-overposting-attacks.
private async Task UpdateEventDefinition()
private void OnValidSubmit()
{
context.Attach(EventDefinition!).State = EntityState.Modified;
try
{
await context.SaveChangesAsync();
context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
@@ -1,5 +1,6 @@
@page "/events"
@using Microsoft.EntityFrameworkCore
@using WebApp.Models
@inject AppDbContext Context
<PageTitle>Events - TSA Chapter Organizer</PageTitle>
@@ -13,18 +14,27 @@
<Columns>
<PropertyColumn Property="@(e => e.Name)" Title="Event Name" Sortable="true" />
<PropertyColumn Property="@(e => e.EventFormat)" Title="Event Format" />
<PropertyColumn Property="@(e => e.LevelOfEffort)" Title="Level of Effort" />
<PropertyColumn Property="@(e => e.Eligibility)" Title="Eligibility" />
<TemplateColumn Title="Team Size" CellStyle="white-space:nowrap">
<CellTemplate>
<MudTooltip Text="@context.Item.Eligibility">
[@context.Item.MinTeamSize&nbsp;-&nbsp;@context.Item.MaxTeamSize]
</MudTooltip>
</CellTemplate>
</TemplateColumn>
<TemplateColumn Title="TimeSlots State #">
<PropertyColumn Property="@(e => e.ChapterEligibilityCountState)" Title="State#" />
<TemplateColumn Title="Regionals" Sortable="true" SortBy="e => e.ChapterEligibilityCountRegionals">
<CellTemplate>
@context.Item.MaxTeamCountState
@if (context.Item.RegionalEvent) { @AppIcons.RegionalEvent }
</CellTemplate>
</TemplateColumn>
<TemplateColumn Title="Pre-submission" Sortable="true" SortBy="e => e.Presubmission">
<CellTemplate>
@if (context.Item.Presubmission) { @AppIcons.PresubmissionEvent }
</CellTemplate>
</TemplateColumn>
<PropertyColumn Property="@(e => e.LevelOfEffort)" Title="Level of Effort" />
<TemplateColumn>
<CellTemplate>
<MudStack Row>
@@ -54,7 +64,7 @@
private async Task<GridData<EventDefinition>> ServerReload(GridState<EventDefinition> state)
{
var query = Context.Events.Where(state.FilterDefinitions).OrderBy(state.SortDefinitions);
var query = Context.Events.OrderBy(e => e.Name).Where(state.FilterDefinitions).OrderBy(state.SortDefinitions);
var totalItems = await query.CountAsync();
var pagedData = await query.Skip(state.Page * state.PageSize).Take(state.PageSize).ToArrayAsync();
@@ -2,6 +2,7 @@
@using Microsoft.EntityFrameworkCore
@using WebApp.Models
@inject AppDbContext Context
@inject IDialogService DialogService
<PageTitle>Students - TSA Chapter Organizer</PageTitle>
@@ -32,13 +33,16 @@
<MudStack Row>
<MudButtonGroup Size="Size.Small">
<MudTooltip Text="Details">
<MudIconButton Href="@($"/students/details?id={context.Item.Id}")" Icon="@Icons.Material.Filled.Description">Details</MudIconButton>
<MudIconButton Href="@($"/students/details?id={context.Item.Id}")" Icon="@Icons.Material.Filled.Description" />
</MudTooltip>
<MudTooltip Text="Edit">
<MudIconButton Href="@($"/students/edit?id={context.Item.Id}")" Icon="@Icons.Material.Filled.Edit">Edit</MudIconButton>
<MudIconButton Href="@($"/students/edit?id={context.Item.Id}")" Icon="@Icons.Material.Filled.Edit" />
</MudTooltip>
<MudTooltip Text="Delete">
<MudIconButton Href="@($"/students/delete?id={context.Item.Id}")" Icon="@Icons.Material.Filled.Delete" Color="@Color.Warning">Delete</MudIconButton>
<MudIconButton Icon="@Icons.Material.Outlined.Delete"
Color="Color.Error"
OnClick="() => DeleteElement(context.Item)" />
</MudTooltip>
</MudButtonGroup>
</MudStack>
@@ -69,4 +73,29 @@
Items = pagedData
};
}
private async Task DeleteElement(object obj)
{
//_isRowBlocked = true;
if (obj is Student student)
{
var result = await DialogService
.ShowMessageBox("Delete student",
(MarkupString)$"Are you sure want to delete <b>{student.Name}</b>?",
yesText:"Yes",
noText:"Cancel");
if (result == true)
{
Context.Students.Remove(student!);
await Context.SaveChangesAsync();
//Snackbar.Add($"Delete event: Delete of Element {element.Name}", Severity.Info);
}
}
//_isRowBlocked = false;
StateHasChanged();
_dataGrid.ReloadServerData();
}
}
@@ -76,9 +76,9 @@ else
}
}
else if (context.Event.EventFormat == EventFormat.Individual
&& context.Students.Count > context.Event.MaxTeamCountState)
&& context.Students.Count > context.Event.ChapterEligibilityCountState)
{
<span>Max Team Count State: @context.Event.MaxTeamCountState</span>
<span>Max Team Count State: @context.Event.ChapterEligibilityCountState</span>
}
</MudTd>
</RowTemplate>
+6
View File
@@ -25,6 +25,8 @@ namespace WebApp.Models
public static string OnSiteActivity = "ⓐ";
public static string RegionalEvent = "ⓡ";
public static string IndividualEvent = "ⓘ";
public static string PresubmissionEvent = "🕑";
public static string PresentationEvent = "ⓟ";
public static string QuestionMark = "❔";
public static string EventEffort(EventDefinition eventDefinition)
@@ -38,8 +40,12 @@ namespace WebApp.Models
if (eventDefinition.EventFormat == EventFormat.Individual)
v.Add(IndividualEvent);
if (eventDefinition.InterviewOrPresentation)
v.Add(PresentationEvent);
if (eventDefinition.OnSiteActivity)
v.Add(OnSiteActivity);
if (eventDefinition.Presubmission)
v.Add(PresubmissionEvent);
if (eventDefinition.RegionalEvent)
v.Add(RegionalEvent);