using Microsoft.AspNetCore.Components; using CredentialManager.Models; namespace Components; public partial class ProfileSelector { [Parameter] public List? Profiles { get; set; } [Parameter] public EventCallback OnProfileLoaded { get; set; } [Parameter] public EventCallback OnManageProfiles { get; set; } [Parameter] public bool IsLoading { get; set; } private int SelectedProfileId { get; set; } private string LoadMessage { get; set; } = ""; private string LoadMessageType { get; set; } = "info"; private void OnProfileSelected(ChangeEventArgs e) { if (int.TryParse(e.Value?.ToString(), out int profileId)) { SelectedProfileId = profileId; } else { SelectedProfileId = 0; } LoadMessage = ""; } private async Task LoadSelectedProfile() { if (SelectedProfileId == 0 || Profiles == null) return; var selectedProfile = Profiles.FirstOrDefault(p => p.Id == SelectedProfileId); if (selectedProfile != null) { LoadMessage = $"Profilo '{selectedProfile.Name}' caricato con successo!"; LoadMessageType = "success"; await OnProfileLoaded.InvokeAsync(selectedProfile); } else { LoadMessage = "Errore nel caricamento del profilo selezionato."; LoadMessageType = "danger"; } } private async Task OpenProfileManagement() { await OnManageProfiles.InvokeAsync(); } public void ClearMessage() { LoadMessage = ""; } public void SetMessage(string message, string type = "info") { LoadMessage = message; LoadMessageType = type; } }