@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();
}