@using Microsoft.EntityFrameworkCore @using WebApp.Components.Shared.Components @page "/teams" @attribute [Authorize] @inject AppDbContext Context @inject IDialogService DialogService @inject ISnackbar Snackbar Create New Assignment Printout @context.Item.ToString() @code { MudDataGrid _dataGrid = null!; private async Task> ServerReload(GridState state) { var query = Context.Teams .Include(e => e.Event) .Include(e => e.Students) .ThenInclude(e => e.EventRankings) .OrderBy(e => e.Event.Name) .ThenBy(e => e.Identifier) .Where(state.FilterDefinitions) .OrderBy(state.SortDefinitions); var totalItems = await query.CountAsync(); var pagedData = await query.Skip(state.Page * state.PageSize).Take(state.PageSize).ToArrayAsync(); return new GridData { TotalItems = totalItems, Items = pagedData }; } private async Task DeleteTeam(Team team) { //_isRowBlocked = true; var result = await DialogService .ShowMessageBox("Delete team", (MarkupString)$"Are you sure want to delete {team}? This cannot be undone.", yesText: "Yes", noText: "Cancel"); if (result == true) { // If deleting a numbered team (1 or 2), clear the identifier of the remaining team if (team.Identifier == "1" || team.Identifier == "2") { var remainingTeam = await Context.Teams .Include(t => t.Event) .FirstOrDefaultAsync(t => t.Event.Id == team.Event.Id && t.Id != team.Id); if (remainingTeam != null) { remainingTeam.Identifier = null; Context.Teams.Update(remainingTeam); } } Context.Teams.Remove(team!); await Context.SaveChangesAsync(); Snackbar.Add($"Delete event: Delete of Team {team}", Severity.Info); } //_isRowBlocked = false; StateHasChanged(); await _dataGrid.ReloadServerData(); } }