@page "/sales/institutionform" @page "/sales/institutionform/{InstitutionId:int?}" @using System.ComponentModel.DataAnnotations @using phronCare.UIBlazor.Services.Sales @using phronCare.UIBlazor.Pages.Shared.Modals @inject InstitutionService institutionService @inject IToastService ToastService @inject NavigationManager Navigation @inject IModalService Modal

@((InstitutionId.HasValue ? "Editar institución" : "Nueva institución"))

@foreach (var province in provinces) { }
@if (_model.Latitude.HasValue && _model.Longitude.HasValue) { } else {
Ingrese coordenadas para visualizar el mapa
}
@code { [Parameter] public int? InstitutionId { get; set; } [Parameter] public string? returnUrl { get; set; } = "/sales/institutions"; private string searchQuery = string.Empty; private EInstitution _model = new(); private bool isSaving = false; 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" }; protected override async Task OnInitializedAsync() { if (InstitutionId.HasValue) { _model = await institutionService.GetByIdAsync(InstitutionId.Value); } } private async Task HandleLocationChanged((double lat, double lng) location) { _model.Latitude = location.lat; _model.Longitude = location.lng; } private async Task HandleValidSubmit() { var parameters = new ModalParameters(); parameters.Add("Message", "¿Desea guardar los cambios de la institución?"); var modal = Modal.Show("Confirmación", parameters); var result = await modal.Result; if (result.Cancelled) return; try { HttpResponseMessage response; if (_model.Id == 0) response = await institutionService.CreateAsync(_model); else response = await institutionService.UpdateAsync(_model); if (response.IsSuccessStatusCode) { ToastService.ShowSuccess("Institución guardada correctamente."); NavigateBack(); } else { var error = await response.Content.ReadAsStringAsync(); ToastService.ShowError($"Error: {error}"); } } catch (Exception ex) { ToastService.ShowError($"Error: {ex.Message}"); } } private void NavigateBack() { Navigation.NavigateTo(returnUrl ?? "/sales/institutions"); } }