@page "/events/edit" @attribute [Authorize] @using Microsoft.EntityFrameworkCore @using WebApp.Components.Shared.Components @inject AppDbContext context @inject NavigationManager NavigationManager @if (EventDefinition is null) {

Loading...

return; } Format @foreach (EventFormat format in Enum.GetValues(typeof(EventFormat))) { @format.ToString() } Save Cancel @code { [SupplyParameterFromQuery] private int Id { get; set; } [SupplyParameterFromForm] private EventDefinition? EventDefinition { get; set; } private FormChangeTracker? _formChangeTracker; protected override async Task OnInitializedAsync() { EventDefinition ??= await context.Events.FirstOrDefaultAsync(m => m.Id == Id); if (EventDefinition is null) { NavigationManager.NavigateTo("notfound"); } } // 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 void OnValidSubmit() { context.Attach(EventDefinition!).State = EntityState.Modified; try { context.SaveChangesAsync(); _formChangeTracker?.AllowNavigation(); NavigationManager.NavigateTo("/events"); } catch (DbUpdateConcurrencyException) { if (!EventDefinitionExists(EventDefinition!.Id)) { NavigationManager.NavigateTo("notfound"); } else { throw; } } } private void HandleCancel() { _formChangeTracker?.AllowNavigation(); NavigationManager.NavigateTo("/events"); } private bool EventDefinitionExists(int id) { return context.Events.Any(e => e.Id == id); } }