Merge
This commit is contained in:
@@ -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 - @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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user