@page "/sales/professionalform/" @page "/sales/professionalform/{Id:int?}" @using phronCare.UIBlazor.Services.Sales @inject ProfessionalService ProfessionalService @inject DocumentTypeService documentTypeService @inject ProfessionalSpecialtyService specialtyService @inject NavigationManager Navigation @inject IToastService toastService @((model.Id == 0) ? "Nuevo Profesional" : "Editar Profesional") Nombre Completo Tipo de documento: Seleccione un tipo @foreach (var type in documentTypes) { @type.Description } Número Matrícula Teléfono Principal Teléfono Secundario Email Tipo de Profesional @foreach (var option in professionalTypes) { @option.Text } Especialidad --- Seleccionar --- @foreach (var s in specialties) { @s.Name } Activo Dirección Ciudad Provincia: --- Seleccionar --- @foreach (var province in provinces) { @province } @code { [Parameter] public int? Id { get; set; } private EProfessional model = new(); private List documentTypes = new(); private List specialties = new(); private List provinces = new() { "Buenos Aires", "CABA", "Catamarca", "Chaco", "Chubut", "Córdoba", "Corrientes", "Entre Ríos", "Formosa", "Jujuy", "La Pampa", "La Rioja", "Mendoza", "Misiones", "Neuquén", "Río Negro", "Salta", "San Juan", "San Luis", "Santa Cruz", "Santa Fe", "Santiago del Estero", "Tierra del Fuego", "Tucumán" }; private List<(string Value, string Text)> professionalTypes = new() { ("","--- Seleccionar ---"), ("Medico", "Médico"), ("Instrumentador", "Instrumentador quirúrgico"), ("Enfermero", "Enfermero/a"), ("Tecnico", "Técnico quirúrgico") }; protected override async Task OnInitializedAsync() { await LoadDocumentTypes(); await LoadSpecialties(); if (Id.HasValue && Id > 0) { var result = await ProfessionalService.GetById(Id.Value); if (result != null) model = result; else toastService.ShowError("No se pudo cargar el profesional."); } } private async Task LoadDocumentTypes() { documentTypes = await documentTypeService.GetAllAsync(); } private async Task LoadSpecialties() { specialties = await specialtyService.GetAllAsync(); } private async Task HandleValidSubmit() { var result = model.Id == 0 ? await ProfessionalService.CreateAsync(model) : await ProfessionalService.UpdateAsync(model); if (result.IsSuccessStatusCode) { toastService.ShowSuccess("Profesional guardado correctamente."); Navigation.NavigateTo("/sales/professionals"); } else { var error = await result.Content.ReadAsStringAsync(); toastService.ShowError($"Error: {error}"); } } private void Cancel() { Navigation.NavigateTo("/sales/professionals"); } }