@inject IWorkshopService WorkshopSvc @inject AuthenticationStateProvider AuthState Preventivo Correctivo Hojalatería Eléctrico Aire acondicionado Alineación / balanceo Diagnóstico Otro Sin categoría @foreach (var c in Categorias) { @c.Nombre } @if (!string.IsNullOrEmpty(error)) { @error } Cancelar @(guardando ? "Guardando..." : "Guardar") @code { [CascadingParameter] private MudDialogInstance MudDialog { get; set; } = default!; [Parameter] public ServicioFormDto Servicio { get; set; } = new(); [Parameter] public List Categorias { get; set; } = new(); private MudForm? form; private bool guardando; private string? error; private async Task Guardar() { if (form == null) return; await form.Validate(); if (!form.IsValid) return; guardando = true; error = null; try { var auth = await AuthState.GetAuthenticationStateAsync(); var usuario = auth.User.Identity?.Name; if (Servicio.Id == 0) await WorkshopSvc.CrearServicioAsync(Servicio, usuario); else await WorkshopSvc.ActualizarServicioAsync(Servicio, usuario); MudDialog.Close(DialogResult.Ok(true)); } catch (Exception ex) { error = ex.Message; } finally { guardando = false; } } private void Cancelar() => MudDialog.Cancel(); }