From 7e450a358bbbf897e5a9acfcbe23c4accec36e39 Mon Sep 17 00:00:00 2001 From: Alessio Dal Santo Date: Wed, 2 Jul 2025 00:00:05 +0200 Subject: [PATCH] feat: Aggiunto sistema completo di gestione profili per Data Coupler MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Creata nuova libreria Components con componenti Blazor riutilizzabili * ProfileSelector: dropdown per selezione profili salvati * ProfileSaver: componente per salvare configurazioni correnti come profili * ProfileManagement: modale per gestione profili salvati * ProfileQuickActions: bottoni azioni rapide per operazioni sui profili - Esteso CredentialManager con entità e servizi per DataCouplerProfile * Aggiunto modello DataCouplerProfile con configurazioni mapping e metadati * Implementata migrazione Entity Framework per memorizzazione profili * Creato DataCouplerProfileService per operazioni CRUD * Aggiunto CredentialDbContextFactory per operazioni database design-time - Migliorato componente principale DataCoupler con integrazione profili * Integrata funzionalità caricamento/salvataggio profili * Aggiunto selettore profili nella parte superiore dell'interfaccia * Mantenuta retrocompatibilità con funzionalità esistenti * Migliorata esperienza utente con gestione configurazioni salvate - Aggiornata struttura progetto e dipendenze * Aggiunto progetto Components alla soluzione * Aggiornati riferimenti progetti e import * Rimosso progetto obsoleto TestDatabaseFix Questo aggiornamento migliora significativamente il flusso di lavoro permettendo agli utenti di salvare, caricare e gestire configurazioni complete di accoppiamento dati come --- Components/Components.csproj | 22 + Components/ProfileManagement.razor | 180 ++++ Components/ProfileManagement.razor.cs | 145 +++ Components/ProfileQuickActions.razor | 0 Components/ProfileQuickActions.razor.cs | 0 Components/ProfileSaver.razor | 115 +++ Components/ProfileSaver.razor.cs | 123 +++ Components/ProfileSelector.razor | 56 ++ Components/ProfileSelector.razor.cs | 64 ++ Components/_Imports.razor | 4 + Components/nuget.config | 8 + Components/wwwroot/background.png | Bin 0 -> 378 bytes .../CredentialManagerConfiguration.cs | 1 + CredentialManager/Data/CredentialDbContext.cs | 76 ++ .../Data/CredentialDbContextFactory.cs | 21 + ...1203438_AddDataCouplerProfiles.Designer.cs | 326 +++++++ .../20250701203438_AddDataCouplerProfiles.cs | 104 ++ .../CredentialDbContextModelSnapshot.cs | 117 ++- .../Models/DataCouplerProfile.cs | 73 ++ .../Models/DataCouplerProfileDto.cs | 60 ++ .../Services/DataCouplerProfileService.cs | 234 +++++ .../Services/IDataCouplerProfileService.cs | 49 + CredentialManager/design_time_temp.db | Bin 0 -> 118784 bytes Data_Coupler.sln | 14 + Data_Coupler/Data_Coupler.csproj | 1 + Data_Coupler/Pages/DataCoupler.razor | 40 +- Data_Coupler/Pages/DataCoupler.razor.cs | 904 +++++++++++------- Data_Coupler/_Imports.razor | 2 +- Data_Coupler/wwwroot/data/credentials.db | Bin 86016 -> 86016 bytes Data_Coupler/wwwroot/data/credentials.db-shm | Bin 32768 -> 32768 bytes Data_Coupler/wwwroot/data/credentials.db-wal | Bin 3897552 -> 0 bytes TestDataCouplerProfile/Program.cs | 56 ++ .../TestDataCouplerProfile.csproj | 7 +- TestDatabaseFix/Program.cs | 50 - 34 files changed, 2430 insertions(+), 422 deletions(-) create mode 100644 Components/Components.csproj create mode 100644 Components/ProfileManagement.razor create mode 100644 Components/ProfileManagement.razor.cs create mode 100644 Components/ProfileQuickActions.razor create mode 100644 Components/ProfileQuickActions.razor.cs create mode 100644 Components/ProfileSaver.razor create mode 100644 Components/ProfileSaver.razor.cs create mode 100644 Components/ProfileSelector.razor create mode 100644 Components/ProfileSelector.razor.cs create mode 100644 Components/_Imports.razor create mode 100644 Components/nuget.config create mode 100644 Components/wwwroot/background.png create mode 100644 CredentialManager/Data/CredentialDbContextFactory.cs create mode 100644 CredentialManager/Migrations/20250701203438_AddDataCouplerProfiles.Designer.cs create mode 100644 CredentialManager/Migrations/20250701203438_AddDataCouplerProfiles.cs create mode 100644 CredentialManager/Models/DataCouplerProfile.cs create mode 100644 CredentialManager/Models/DataCouplerProfileDto.cs create mode 100644 CredentialManager/Services/DataCouplerProfileService.cs create mode 100644 CredentialManager/Services/IDataCouplerProfileService.cs create mode 100644 CredentialManager/design_time_temp.db create mode 100644 TestDataCouplerProfile/Program.cs rename TestDatabaseFix/TestDatabaseFix.csproj => TestDataCouplerProfile/TestDataCouplerProfile.csproj (51%) delete mode 100644 TestDatabaseFix/Program.cs diff --git a/Components/Components.csproj b/Components/Components.csproj new file mode 100644 index 0000000..2935b41 --- /dev/null +++ b/Components/Components.csproj @@ -0,0 +1,22 @@ + + + + net9.0 + enable + enable + + + + + + + + + + + + + + + + diff --git a/Components/ProfileManagement.razor b/Components/ProfileManagement.razor new file mode 100644 index 0000000..8371d0d --- /dev/null +++ b/Components/ProfileManagement.razor @@ -0,0 +1,180 @@ +@* Componente per la gestione completa dei profili *@ + + +@if (ShowModal) +{ + +} + + +@if (ShowDeleteConfirm && ProfileToDelete != null) +{ + +} diff --git a/Components/ProfileManagement.razor.cs b/Components/ProfileManagement.razor.cs new file mode 100644 index 0000000..6735ba7 --- /dev/null +++ b/Components/ProfileManagement.razor.cs @@ -0,0 +1,145 @@ +using Microsoft.AspNetCore.Components; +using CredentialManager.Models; + +namespace Components; + +public partial class ProfileManagement +{ + [Parameter] public bool ShowModal { get; set; } + [Parameter] public List? Profiles { get; set; } + [Parameter] public EventCallback OnCloseModal { get; set; } + [Parameter] public EventCallback OnProfileLoaded { get; set; } + [Parameter] public EventCallback OnProfileDeleted { get; set; } + [Parameter] public bool IsLoading { get; set; } + + private string SearchTerm { get; set; } = ""; + private string Message { get; set; } = ""; + private string MessageType { get; set; } = "info"; + private bool ShowDeleteConfirm { get; set; } = false; + private bool IsDeleting { get; set; } = false; + private DataCouplerProfile? ProfileToDelete { get; set; } + + private void FilterProfiles(ChangeEventArgs e) + { + SearchTerm = e.Value?.ToString() ?? ""; + } + + private IEnumerable GetFilteredProfiles() + { + if (Profiles == null) + return Enumerable.Empty(); + + if (string.IsNullOrWhiteSpace(SearchTerm)) + return Profiles; + + var searchLower = SearchTerm.ToLower(); + return Profiles.Where(p => + p.Name.ToLower().Contains(searchLower) || + (!string.IsNullOrEmpty(p.Description) && p.Description.ToLower().Contains(searchLower)) + ); + } + + private string GetTypeLabel(string type) + { + return type switch + { + "database" => "DB", + "file" => "File", + "rest" => "REST", + _ => type.ToUpper() + }; + } + + private string GetProfileSummary(DataCouplerProfile profile) + { + var parts = new List(); + + // Fonte + if (!string.IsNullOrEmpty(profile.SourceTable)) + parts.Add($"da {profile.SourceTable}"); + else if (!string.IsNullOrEmpty(profile.SourceFilePath)) + parts.Add($"da {Path.GetFileName(profile.SourceFilePath)}"); + + // Destinazione + if (!string.IsNullOrEmpty(profile.DestinationTable)) + parts.Add($"verso {profile.DestinationTable}"); + else if (!string.IsNullOrEmpty(profile.DestinationEndpoint)) + parts.Add($"verso {profile.DestinationEndpoint}"); + + return string.Join(" ", parts); + } + + private async Task CloseModal() + { + SearchTerm = ""; + Message = ""; + await OnCloseModal.InvokeAsync(); + } + + private async Task LoadProfile(DataCouplerProfile profile) + { + Message = $"Caricamento profilo '{profile.Name}'..."; + MessageType = "info"; + + await OnProfileLoaded.InvokeAsync(profile); + + Message = $"Profilo '{profile.Name}' caricato con successo!"; + MessageType = "success"; + + // Chiudi il modal dopo un breve delay + await Task.Delay(1000); + await CloseModal(); + } + + private void ConfirmDelete(DataCouplerProfile profile) + { + ProfileToDelete = profile; + ShowDeleteConfirm = true; + Message = ""; + } + + private void CancelDelete() + { + ProfileToDelete = null; + ShowDeleteConfirm = false; + } + + private async Task DeleteProfile() + { + if (ProfileToDelete == null) + return; + + IsDeleting = true; + + try + { + await OnProfileDeleted.InvokeAsync(ProfileToDelete.Id); + + Message = $"Profilo '{ProfileToDelete.Name}' eliminato con successo."; + MessageType = "success"; + + ShowDeleteConfirm = false; + ProfileToDelete = null; + } + catch (Exception ex) + { + Message = $"Errore nell'eliminazione: {ex.Message}"; + MessageType = "danger"; + } + finally + { + IsDeleting = false; + } + } + + public void SetMessage(string message, string type = "info") + { + Message = message; + MessageType = type; + } + + public void ClearMessage() + { + Message = ""; + } +} diff --git a/Components/ProfileQuickActions.razor b/Components/ProfileQuickActions.razor new file mode 100644 index 0000000..e69de29 diff --git a/Components/ProfileQuickActions.razor.cs b/Components/ProfileQuickActions.razor.cs new file mode 100644 index 0000000..e69de29 diff --git a/Components/ProfileSaver.razor b/Components/ProfileSaver.razor new file mode 100644 index 0000000..52142ad --- /dev/null +++ b/Components/ProfileSaver.razor @@ -0,0 +1,115 @@ +@* Componente per salvare la configurazione corrente come profilo *@ +
+
+
+ Salva Configurazione Corrente +
+
+
+ @if (!ShowSaveForm) + { + + @if (!CanSave) + { + + + Configura fonte e destinazione per abilitare il salvataggio + + } + } + else + { + + + +
+
+
+ + + +
+
+
+
+ + +
+
+
+ + @if (!string.IsNullOrEmpty(SaveMessage)) + { +
+ + @SaveMessage +
+ } + + +
+ +
+
+
+ Fonte: @GetSourceSummary()
+ @if (!string.IsNullOrEmpty(SourceSchema)) + { + Schema: @SourceSchema
+ } + @if (!string.IsNullOrEmpty(SourceTable)) + { + Tabella: @SourceTable + } +
+
+ Destinazione: @GetDestinationSummary()
+ @if (!string.IsNullOrEmpty(DestinationSchema)) + { + Schema: @DestinationSchema
+ } + @if (!string.IsNullOrEmpty(DestinationTable)) + { + Tabella: @DestinationTable + } + @if (!string.IsNullOrEmpty(DestinationEndpoint)) + { + Endpoint: @DestinationEndpoint + } +
+
+ @if (FieldMappings != null && FieldMappings.Any()) + { +
+ + + @FieldMappings.Count mapping dei campi configurati + + } +
+
+ +
+ + +
+
+ } +
+
diff --git a/Components/ProfileSaver.razor.cs b/Components/ProfileSaver.razor.cs new file mode 100644 index 0000000..a776486 --- /dev/null +++ b/Components/ProfileSaver.razor.cs @@ -0,0 +1,123 @@ +using Microsoft.AspNetCore.Components; +using CredentialManager.Models; +using System.ComponentModel.DataAnnotations; + +namespace Components; + +public partial class ProfileSaver +{ + [Parameter] public bool CanSave { get; set; } + [Parameter] public string SourceType { get; set; } = ""; + [Parameter] public int? SourceCredentialId { get; set; } + [Parameter] public string? SourceSchema { get; set; } + [Parameter] public string? SourceTable { get; set; } + [Parameter] public string? SourceFilePath { get; set; } + [Parameter] public string DestinationType { get; set; } = ""; + [Parameter] public int? DestinationCredentialId { get; set; } + [Parameter] public string? DestinationSchema { get; set; } + [Parameter] public string? DestinationTable { get; set; } + [Parameter] public string? DestinationEndpoint { get; set; } + [Parameter] public List? FieldMappings { get; set; } + [Parameter] public EventCallback OnProfileSaved { get; set; } + + private bool ShowSaveForm { get; set; } = false; + private bool IsSaving { get; set; } = false; + private string SaveMessage { get; set; } = ""; + private string SaveMessageType { get; set; } = "info"; + private ProfileFormModel ProfileData { get; set; } = new(); + + private void ShowSaveDialog() + { + ProfileData = new ProfileFormModel(); + ShowSaveForm = true; + SaveMessage = ""; + } + + private void CancelSave() + { + ShowSaveForm = false; + SaveMessage = ""; + ProfileData = new(); + } + + private async Task SaveProfile() + { + IsSaving = true; + SaveMessage = ""; + + try + { + var profileDto = new DataCouplerProfileDto + { + Name = ProfileData.Name, + Description = ProfileData.Description, + SourceType = SourceType, + SourceCredentialId = SourceCredentialId, + SourceSchema = SourceSchema, + SourceTable = SourceTable, + SourceFilePath = SourceFilePath, + DestinationType = DestinationType, + DestinationCredentialId = DestinationCredentialId, + DestinationSchema = DestinationSchema, + DestinationTable = DestinationTable, + DestinationEndpoint = DestinationEndpoint, + FieldMappings = FieldMappings + }; + + await OnProfileSaved.InvokeAsync(profileDto); + + SaveMessage = $"Profilo '{ProfileData.Name}' salvato con successo!"; + SaveMessageType = "success"; + + // Reset form after successful save + await Task.Delay(1500); // Show success message briefly + ShowSaveForm = false; + ProfileData = new(); + } + catch (Exception ex) + { + SaveMessage = $"Errore nel salvataggio: {ex.Message}"; + SaveMessageType = "danger"; + } + finally + { + IsSaving = false; + } + } + + private string GetSourceSummary() + { + return SourceType switch + { + "database" => "Database", + "file" => "File Excel/CSV", + _ => "Non configurato" + }; + } + + private string GetDestinationSummary() + { + return DestinationType switch + { + "database" => "Database", + "rest" => "REST API", + _ => "Non configurato" + }; + } + + public void SetMessage(string message, string type = "info") + { + SaveMessage = message; + SaveMessageType = type; + } + + public class ProfileFormModel + { + [Required(ErrorMessage = "Il nome del profilo è obbligatorio")] + [StringLength(100, ErrorMessage = "Il nome non può superare i 100 caratteri")] + public string Name { get; set; } = ""; + + [StringLength(500, ErrorMessage = "La descrizione non può superare i 500 caratteri")] + public string? Description { get; set; } + } +} diff --git a/Components/ProfileSelector.razor b/Components/ProfileSelector.razor new file mode 100644 index 0000000..28a3909 --- /dev/null +++ b/Components/ProfileSelector.razor @@ -0,0 +1,56 @@ +@* Componente per la selezione e caricamento dei profili *@ +
+
+
+ Gestione Profili +
+
+
+
+ +
+ +
+ + +
+ @if (!string.IsNullOrEmpty(LoadMessage)) + { +
+ + @LoadMessage +
+ } +
+ + +
+ +
+
+
+
diff --git a/Components/ProfileSelector.razor.cs b/Components/ProfileSelector.razor.cs new file mode 100644 index 0000000..66459fe --- /dev/null +++ b/Components/ProfileSelector.razor.cs @@ -0,0 +1,64 @@ +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; + } +} diff --git a/Components/_Imports.razor b/Components/_Imports.razor new file mode 100644 index 0000000..a3eeb12 --- /dev/null +++ b/Components/_Imports.razor @@ -0,0 +1,4 @@ +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.Forms +@using CredentialManager.Models +@using CredentialManager.Services diff --git a/Components/nuget.config b/Components/nuget.config new file mode 100644 index 0000000..6ce9759 --- /dev/null +++ b/Components/nuget.config @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Components/wwwroot/background.png b/Components/wwwroot/background.png new file mode 100644 index 0000000000000000000000000000000000000000..e15a3bde6e2bdb380df6a0b46d7ed00bdeb0aaa8 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^x**KK1SGdsl%54rjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33 zJwr2>%=KS^ie7oTIEF;HpS|GCbyPusHSqiXaCu3qf)82(9Gq&mZq2{Kq}M*X&MWtJ zSi1Jo7ZzfImg%g=t(qo=wsSR2lZoP(Rj#3wacN=q0?Br(rXzgZEGK2$ID{|A=5S{xJEuzSH>!M+7wSY6hB<=-E^*n0W7 S8wY^CX7F_Nb6Mw<&;$S{dxtsz literal 0 HcmV?d00001 diff --git a/CredentialManager/CredentialManagerConfiguration.cs b/CredentialManager/CredentialManagerConfiguration.cs index 0eaee03..8b1e849 100644 --- a/CredentialManager/CredentialManagerConfiguration.cs +++ b/CredentialManager/CredentialManagerConfiguration.cs @@ -40,6 +40,7 @@ public static class CredentialManagerConfiguration services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); return services; } diff --git a/CredentialManager/Data/CredentialDbContext.cs b/CredentialManager/Data/CredentialDbContext.cs index 5069d45..09a6c19 100644 --- a/CredentialManager/Data/CredentialDbContext.cs +++ b/CredentialManager/Data/CredentialDbContext.cs @@ -10,6 +10,7 @@ public class CredentialDbContext : DbContext { public DbSet Credentials { get; set; } public DbSet KeyAssociations { get; set; } + public DbSet DataCouplerProfiles { get; set; } public CredentialDbContext(DbContextOptions options) : base(options) { @@ -141,5 +142,80 @@ public class CredentialDbContext : DbContext entity.HasIndex(e => e.CreatedAt); entity.HasIndex(e => e.LastVerifiedAt); }); + + // Configurazione della tabella DataCouplerProfiles + modelBuilder.Entity(entity => + { + entity.ToTable("DataCouplerProfiles"); + + entity.HasKey(e => e.Id); + + entity.Property(e => e.Name) + .IsRequired() + .HasMaxLength(100); + + entity.Property(e => e.Description) + .HasMaxLength(500); + + entity.Property(e => e.SourceType) + .IsRequired() + .HasMaxLength(20); + + entity.Property(e => e.SourceSchema) + .HasMaxLength(200); + + entity.Property(e => e.SourceTable) + .HasMaxLength(200); + + entity.Property(e => e.SourceFilePath) + .HasMaxLength(500); + + entity.Property(e => e.DestinationType) + .IsRequired() + .HasMaxLength(20); + + entity.Property(e => e.DestinationSchema) + .HasMaxLength(200); + + entity.Property(e => e.DestinationTable) + .HasMaxLength(200); + + entity.Property(e => e.DestinationEndpoint) + .HasMaxLength(500); + + entity.Property(e => e.FieldMappingJson) + .HasMaxLength(4000); + + entity.Property(e => e.CreatedBy) + .HasMaxLength(100); + + // Valori di default + entity.Property(e => e.CreatedAt) + .HasDefaultValueSql("CURRENT_TIMESTAMP"); + + entity.Property(e => e.IsActive) + .HasDefaultValue(true); + + // Indici + entity.HasIndex(e => e.Name) + .IsUnique(); + + entity.HasIndex(e => e.SourceType); + entity.HasIndex(e => e.DestinationType); + entity.HasIndex(e => e.IsActive); + entity.HasIndex(e => e.CreatedAt); + entity.HasIndex(e => e.LastUsedAt); + + // Relazioni con le credenziali + entity.HasOne(e => e.SourceCredential) + .WithMany() + .HasForeignKey(e => e.SourceCredentialId) + .OnDelete(DeleteBehavior.SetNull); + + entity.HasOne(e => e.DestinationCredential) + .WithMany() + .HasForeignKey(e => e.DestinationCredentialId) + .OnDelete(DeleteBehavior.SetNull); + }); } } diff --git a/CredentialManager/Data/CredentialDbContextFactory.cs b/CredentialManager/Data/CredentialDbContextFactory.cs new file mode 100644 index 0000000..2a7f3bd --- /dev/null +++ b/CredentialManager/Data/CredentialDbContextFactory.cs @@ -0,0 +1,21 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Design; + +namespace CredentialManager.Data; + +/// +/// Factory per creare il DbContext durante la fase di design (migrations) +/// +public class CredentialDbContextFactory : IDesignTimeDbContextFactory +{ + public CredentialDbContext CreateDbContext(string[] args) + { + var optionsBuilder = new DbContextOptionsBuilder(); + + // Usa un database SQLite temporaneo per le migrations + var connectionString = "Data Source=design_time_temp.db"; + optionsBuilder.UseSqlite(connectionString); + + return new CredentialDbContext(optionsBuilder.Options); + } +} diff --git a/CredentialManager/Migrations/20250701203438_AddDataCouplerProfiles.Designer.cs b/CredentialManager/Migrations/20250701203438_AddDataCouplerProfiles.Designer.cs new file mode 100644 index 0000000..0a8752e --- /dev/null +++ b/CredentialManager/Migrations/20250701203438_AddDataCouplerProfiles.Designer.cs @@ -0,0 +1,326 @@ +// +using System; +using CredentialManager.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace CredentialManager.Migrations +{ + [DbContext(typeof(CredentialDbContext))] + [Migration("20250701203438_AddDataCouplerProfiles")] + partial class AddDataCouplerProfiles + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "9.0.0"); + + modelBuilder.Entity("CredentialManager.Models.CredentialEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AdditionalParameters") + .HasMaxLength(2000) + .HasColumnType("TEXT"); + + b.Property("CommandTimeout") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(30); + + b.Property("ConnectionString") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("CreatedAt") + .HasColumnType("TEXT"); + + b.Property("CreatedBy") + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("DatabaseName") + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("DatabaseType") + .HasMaxLength(50) + .HasColumnType("TEXT"); + + b.Property("EncryptedApiKey") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("EncryptedAuthToken") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("EncryptedPassword") + .HasColumnType("TEXT"); + + b.Property("Headers") + .HasMaxLength(2000) + .HasColumnType("TEXT"); + + b.Property("Host") + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property("IgnoreSslErrors") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(false); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("Port") + .HasColumnType("INTEGER"); + + b.Property("RestServiceType") + .HasMaxLength(50) + .HasColumnType("TEXT"); + + b.Property("TimeoutSeconds") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(100); + + b.Property("Type") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("TEXT"); + + b.Property("UpdatedAt") + .HasColumnType("TEXT"); + + b.Property("Username") + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("DatabaseType"); + + b.HasIndex("IsActive"); + + b.HasIndex("Name") + .IsUnique(); + + b.HasIndex("Type"); + + b.ToTable("Credentials", (string)null); + }); + + modelBuilder.Entity("CredentialManager.Models.DataCouplerProfile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CreatedAt") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValueSql("CURRENT_TIMESTAMP"); + + b.Property("CreatedBy") + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("Description") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("DestinationCredentialId") + .HasColumnType("INTEGER"); + + b.Property("DestinationEndpoint") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("DestinationSchema") + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property("DestinationTable") + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property("DestinationType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("TEXT"); + + b.Property("FieldMappingJson") + .HasMaxLength(4000) + .HasColumnType("TEXT"); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("LastUsedAt") + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("SourceCredentialId") + .HasColumnType("INTEGER"); + + b.Property("SourceFilePath") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("SourceSchema") + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property("SourceTable") + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property("SourceType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("CreatedAt"); + + b.HasIndex("DestinationCredentialId"); + + b.HasIndex("DestinationType"); + + b.HasIndex("IsActive"); + + b.HasIndex("LastUsedAt"); + + b.HasIndex("Name") + .IsUnique(); + + b.HasIndex("SourceCredentialId"); + + b.HasIndex("SourceType"); + + b.ToTable("DataCouplerProfiles", (string)null); + }); + + modelBuilder.Entity("CredentialManager.Models.KeyAssociation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("AdditionalInfo") + .HasMaxLength(2000) + .HasColumnType("TEXT"); + + b.Property("CreatedAt") + .HasColumnType("TEXT"); + + b.Property("DestinationEntity") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property("DestinationId") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property("DestinationKeyField") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("KeyValue") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("LastVerifiedAt") + .HasColumnType("TEXT"); + + b.Property("RestCredentialName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("SourceKeyField") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property("SourcesInfo") + .HasMaxLength(2000) + .HasColumnType("TEXT"); + + b.Property("UpdatedAt") + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("CreatedAt"); + + b.HasIndex("DestinationEntity"); + + b.HasIndex("IsActive"); + + b.HasIndex("KeyValue") + .HasDatabaseName("IX_KeyAssociations_KeyValue"); + + b.HasIndex("LastVerifiedAt"); + + b.HasIndex("RestCredentialName"); + + b.HasIndex("KeyValue", "DestinationEntity", "RestCredentialName") + .IsUnique() + .HasDatabaseName("IX_KeyAssociations_Unique"); + + b.ToTable("KeyAssociations", (string)null); + }); + + modelBuilder.Entity("CredentialManager.Models.DataCouplerProfile", b => + { + b.HasOne("CredentialManager.Models.CredentialEntity", "DestinationCredential") + .WithMany() + .HasForeignKey("DestinationCredentialId") + .OnDelete(DeleteBehavior.SetNull); + + b.HasOne("CredentialManager.Models.CredentialEntity", "SourceCredential") + .WithMany() + .HasForeignKey("SourceCredentialId") + .OnDelete(DeleteBehavior.SetNull); + + b.Navigation("DestinationCredential"); + + b.Navigation("SourceCredential"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/CredentialManager/Migrations/20250701203438_AddDataCouplerProfiles.cs b/CredentialManager/Migrations/20250701203438_AddDataCouplerProfiles.cs new file mode 100644 index 0000000..068ac23 --- /dev/null +++ b/CredentialManager/Migrations/20250701203438_AddDataCouplerProfiles.cs @@ -0,0 +1,104 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace CredentialManager.Migrations +{ + /// + public partial class AddDataCouplerProfiles : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "DataCouplerProfiles", + columns: table => new + { + Id = table.Column(type: "INTEGER", nullable: false) + .Annotation("Sqlite:Autoincrement", true), + Name = table.Column(type: "TEXT", maxLength: 100, nullable: false), + Description = table.Column(type: "TEXT", maxLength: 500, nullable: true), + SourceType = table.Column(type: "TEXT", maxLength: 20, nullable: false), + SourceCredentialId = table.Column(type: "INTEGER", nullable: true), + SourceSchema = table.Column(type: "TEXT", maxLength: 200, nullable: true), + SourceTable = table.Column(type: "TEXT", maxLength: 200, nullable: true), + SourceFilePath = table.Column(type: "TEXT", maxLength: 500, nullable: true), + DestinationType = table.Column(type: "TEXT", maxLength: 20, nullable: false), + DestinationCredentialId = table.Column(type: "INTEGER", nullable: true), + DestinationSchema = table.Column(type: "TEXT", maxLength: 200, nullable: true), + DestinationTable = table.Column(type: "TEXT", maxLength: 200, nullable: true), + DestinationEndpoint = table.Column(type: "TEXT", maxLength: 500, nullable: true), + FieldMappingJson = table.Column(type: "TEXT", maxLength: 4000, nullable: true), + CreatedBy = table.Column(type: "TEXT", maxLength: 100, nullable: true), + CreatedAt = table.Column(type: "TEXT", nullable: false, defaultValueSql: "CURRENT_TIMESTAMP"), + LastUsedAt = table.Column(type: "TEXT", nullable: true), + IsActive = table.Column(type: "INTEGER", nullable: false, defaultValue: true) + }, + constraints: table => + { + table.PrimaryKey("PK_DataCouplerProfiles", x => x.Id); + table.ForeignKey( + name: "FK_DataCouplerProfiles_Credentials_DestinationCredentialId", + column: x => x.DestinationCredentialId, + principalTable: "Credentials", + principalColumn: "Id", + onDelete: ReferentialAction.SetNull); + table.ForeignKey( + name: "FK_DataCouplerProfiles_Credentials_SourceCredentialId", + column: x => x.SourceCredentialId, + principalTable: "Credentials", + principalColumn: "Id", + onDelete: ReferentialAction.SetNull); + }); + + migrationBuilder.CreateIndex( + name: "IX_DataCouplerProfiles_CreatedAt", + table: "DataCouplerProfiles", + column: "CreatedAt"); + + migrationBuilder.CreateIndex( + name: "IX_DataCouplerProfiles_DestinationCredentialId", + table: "DataCouplerProfiles", + column: "DestinationCredentialId"); + + migrationBuilder.CreateIndex( + name: "IX_DataCouplerProfiles_DestinationType", + table: "DataCouplerProfiles", + column: "DestinationType"); + + migrationBuilder.CreateIndex( + name: "IX_DataCouplerProfiles_IsActive", + table: "DataCouplerProfiles", + column: "IsActive"); + + migrationBuilder.CreateIndex( + name: "IX_DataCouplerProfiles_LastUsedAt", + table: "DataCouplerProfiles", + column: "LastUsedAt"); + + migrationBuilder.CreateIndex( + name: "IX_DataCouplerProfiles_Name", + table: "DataCouplerProfiles", + column: "Name", + unique: true); + + migrationBuilder.CreateIndex( + name: "IX_DataCouplerProfiles_SourceCredentialId", + table: "DataCouplerProfiles", + column: "SourceCredentialId"); + + migrationBuilder.CreateIndex( + name: "IX_DataCouplerProfiles_SourceType", + table: "DataCouplerProfiles", + column: "SourceType"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "DataCouplerProfiles"); + } + } +} diff --git a/CredentialManager/Migrations/CredentialDbContextModelSnapshot.cs b/CredentialManager/Migrations/CredentialDbContextModelSnapshot.cs index 925feee..739f22a 100644 --- a/CredentialManager/Migrations/CredentialDbContextModelSnapshot.cs +++ b/CredentialManager/Migrations/CredentialDbContextModelSnapshot.cs @@ -15,7 +15,7 @@ namespace CredentialManager.Migrations protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "9.0.6"); + modelBuilder.HasAnnotation("ProductVersion", "9.0.0"); modelBuilder.Entity("CredentialManager.Models.CredentialEntity", b => { @@ -123,6 +123,104 @@ namespace CredentialManager.Migrations b.ToTable("Credentials", (string)null); }); + modelBuilder.Entity("CredentialManager.Models.DataCouplerProfile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER"); + + b.Property("CreatedAt") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasDefaultValueSql("CURRENT_TIMESTAMP"); + + b.Property("CreatedBy") + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("Description") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("DestinationCredentialId") + .HasColumnType("INTEGER"); + + b.Property("DestinationEndpoint") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("DestinationSchema") + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property("DestinationTable") + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property("DestinationType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("TEXT"); + + b.Property("FieldMappingJson") + .HasMaxLength(4000) + .HasColumnType("TEXT"); + + b.Property("IsActive") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(true); + + b.Property("LastUsedAt") + .HasColumnType("TEXT"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("TEXT"); + + b.Property("SourceCredentialId") + .HasColumnType("INTEGER"); + + b.Property("SourceFilePath") + .HasMaxLength(500) + .HasColumnType("TEXT"); + + b.Property("SourceSchema") + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property("SourceTable") + .HasMaxLength(200) + .HasColumnType("TEXT"); + + b.Property("SourceType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("TEXT"); + + b.HasKey("Id"); + + b.HasIndex("CreatedAt"); + + b.HasIndex("DestinationCredentialId"); + + b.HasIndex("DestinationType"); + + b.HasIndex("IsActive"); + + b.HasIndex("LastUsedAt"); + + b.HasIndex("Name") + .IsUnique(); + + b.HasIndex("SourceCredentialId"); + + b.HasIndex("SourceType"); + + b.ToTable("DataCouplerProfiles", (string)null); + }); + modelBuilder.Entity("CredentialManager.Models.KeyAssociation", b => { b.Property("Id") @@ -202,6 +300,23 @@ namespace CredentialManager.Migrations b.ToTable("KeyAssociations", (string)null); }); + + modelBuilder.Entity("CredentialManager.Models.DataCouplerProfile", b => + { + b.HasOne("CredentialManager.Models.CredentialEntity", "DestinationCredential") + .WithMany() + .HasForeignKey("DestinationCredentialId") + .OnDelete(DeleteBehavior.SetNull); + + b.HasOne("CredentialManager.Models.CredentialEntity", "SourceCredential") + .WithMany() + .HasForeignKey("SourceCredentialId") + .OnDelete(DeleteBehavior.SetNull); + + b.Navigation("DestinationCredential"); + + b.Navigation("SourceCredential"); + }); #pragma warning restore 612, 618 } } diff --git a/CredentialManager/Models/DataCouplerProfile.cs b/CredentialManager/Models/DataCouplerProfile.cs new file mode 100644 index 0000000..047032a --- /dev/null +++ b/CredentialManager/Models/DataCouplerProfile.cs @@ -0,0 +1,73 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace CredentialManager.Models; + +/// +/// Modello per salvare le configurazioni dei profili di Data Coupler +/// +public class DataCouplerProfile +{ + [Key] + public int Id { get; set; } + + [Required] + [MaxLength(100)] + public string Name { get; set; } = string.Empty; + + [MaxLength(500)] + public string? Description { get; set; } + + // Configurazione Fonte Dati + [Required] + [MaxLength(20)] + public string SourceType { get; set; } = string.Empty; // "database" o "file" + + public int? SourceCredentialId { get; set; } + + [MaxLength(200)] + public string? SourceSchema { get; set; } + + [MaxLength(200)] + public string? SourceTable { get; set; } + + [MaxLength(500)] + public string? SourceFilePath { get; set; } + + // Configurazione Destinazione + [Required] + [MaxLength(20)] + public string DestinationType { get; set; } = string.Empty; // "database" o "rest" + + public int? DestinationCredentialId { get; set; } + + [MaxLength(200)] + public string? DestinationSchema { get; set; } + + [MaxLength(200)] + public string? DestinationTable { get; set; } + + [MaxLength(500)] + public string? DestinationEndpoint { get; set; } + + // Mapping dei campi salvato come JSON + [MaxLength(4000)] + public string? FieldMappingJson { get; set; } + + // Metadati + [MaxLength(100)] + public string? CreatedBy { get; set; } + + public DateTime CreatedAt { get; set; } = DateTime.UtcNow; + + public DateTime? LastUsedAt { get; set; } + + public bool IsActive { get; set; } = true; + + // Relazioni opzionali con le credenziali + [ForeignKey(nameof(SourceCredentialId))] + public virtual CredentialEntity? SourceCredential { get; set; } + + [ForeignKey(nameof(DestinationCredentialId))] + public virtual CredentialEntity? DestinationCredential { get; set; } +} diff --git a/CredentialManager/Models/DataCouplerProfileDto.cs b/CredentialManager/Models/DataCouplerProfileDto.cs new file mode 100644 index 0000000..86f7b2d --- /dev/null +++ b/CredentialManager/Models/DataCouplerProfileDto.cs @@ -0,0 +1,60 @@ +namespace CredentialManager.Models; + +/// +/// DTO per la creazione/aggiornamento di un profilo DataCoupler +/// +public class DataCouplerProfileDto +{ + public int? Id { get; set; } + public string Name { get; set; } = string.Empty; + public string? Description { get; set; } + + // Informazioni sorgente + public string SourceType { get; set; } = string.Empty; + public int? SourceCredentialId { get; set; } + public string? SourceSchema { get; set; } + public string? SourceTable { get; set; } + public string? SourceFilePath { get; set; } + + // Informazioni destinazione + public string DestinationType { get; set; } = string.Empty; + public int? DestinationCredentialId { get; set; } + public string? DestinationSchema { get; set; } + public string? DestinationTable { get; set; } + public string? DestinationEndpoint { get; set; } + + // Mapping dei campi + public List? FieldMappings { get; set; } +} + +/// +/// DTO per il mapping dei campi +/// +public class FieldMappingDto +{ + public string SourceField { get; set; } = string.Empty; + public string DestinationField { get; set; } = string.Empty; + public string? DataType { get; set; } + public bool IsKey { get; set; } + public bool IsRequired { get; set; } + public string? DefaultValue { get; set; } + public string? Transformation { get; set; } +} + +/// +/// DTO per la visualizzazione di un profilo nella lista +/// +public class DataCouplerProfileSummaryDto +{ + public int Id { get; set; } + public string Name { get; set; } = string.Empty; + public string? Description { get; set; } + public string SourceType { get; set; } = string.Empty; + public string? SourceName { get; set; } + public string DestinationType { get; set; } = string.Empty; + public string? DestinationName { get; set; } + public DateTime CreatedAt { get; set; } + public DateTime? LastUsedAt { get; set; } + public string? CreatedBy { get; set; } + public bool IsActive { get; set; } +} diff --git a/CredentialManager/Services/DataCouplerProfileService.cs b/CredentialManager/Services/DataCouplerProfileService.cs new file mode 100644 index 0000000..1dbc0d6 --- /dev/null +++ b/CredentialManager/Services/DataCouplerProfileService.cs @@ -0,0 +1,234 @@ +using Microsoft.EntityFrameworkCore; +using CredentialManager.Data; +using CredentialManager.Models; +using System.Text.Json; + +namespace CredentialManager.Services; + +/// +/// Implementazione del servizio per la gestione dei profili Data Coupler +/// +public class DataCouplerProfileService : IDataCouplerProfileService +{ + private readonly CredentialDbContext _context; + + public DataCouplerProfileService(CredentialDbContext context) + { + _context = context; + } + + /// + /// Ottiene tutti i profili attivi + /// + public async Task> GetAllProfilesAsync() + { + return await _context.DataCouplerProfiles + .Include(p => p.SourceCredential) + .Include(p => p.DestinationCredential) + .Where(p => p.IsActive) + .OrderByDescending(p => p.LastUsedAt) + .ThenByDescending(p => p.CreatedAt) + .ToListAsync(); + } + + /// + /// Ottiene un profilo per ID + /// + public async Task GetProfileByIdAsync(int id) + { + return await _context.DataCouplerProfiles + .Include(p => p.SourceCredential) + .Include(p => p.DestinationCredential) + .FirstOrDefaultAsync(p => p.Id == id && p.IsActive); + } + + /// + /// Ottiene un profilo per nome + /// + public async Task GetProfileByNameAsync(string name) + { + return await _context.DataCouplerProfiles + .Include(p => p.SourceCredential) + .Include(p => p.DestinationCredential) + .FirstOrDefaultAsync(p => p.Name == name && p.IsActive); + } + + /// + /// Salva un nuovo profilo + /// + public async Task SaveProfileAsync(DataCouplerProfile profile) + { + profile.CreatedAt = DateTime.UtcNow; + profile.IsActive = true; + + _context.DataCouplerProfiles.Add(profile); + await _context.SaveChangesAsync(); + + return profile; + } + + /// + /// Aggiorna un profilo esistente + /// + public async Task UpdateProfileAsync(DataCouplerProfile profile) + { + var existingProfile = await _context.DataCouplerProfiles + .FirstOrDefaultAsync(p => p.Id == profile.Id); + + if (existingProfile == null) + { + throw new InvalidOperationException($"Profilo con ID {profile.Id} non trovato"); + } + + // Aggiorna le proprietà + existingProfile.Name = profile.Name; + existingProfile.Description = profile.Description; + existingProfile.SourceType = profile.SourceType; + existingProfile.SourceCredentialId = profile.SourceCredentialId; + existingProfile.SourceSchema = profile.SourceSchema; + existingProfile.SourceTable = profile.SourceTable; + existingProfile.SourceFilePath = profile.SourceFilePath; + existingProfile.DestinationType = profile.DestinationType; + existingProfile.DestinationCredentialId = profile.DestinationCredentialId; + existingProfile.DestinationSchema = profile.DestinationSchema; + existingProfile.DestinationTable = profile.DestinationTable; + existingProfile.DestinationEndpoint = profile.DestinationEndpoint; + existingProfile.FieldMappingJson = profile.FieldMappingJson; + + await _context.SaveChangesAsync(); + return existingProfile; + } + + /// + /// Elimina un profilo (soft delete) + /// + public async Task DeleteProfileAsync(int id) + { + var profile = await _context.DataCouplerProfiles + .FirstOrDefaultAsync(p => p.Id == id); + + if (profile == null) + { + return false; + } + + profile.IsActive = false; + await _context.SaveChangesAsync(); + return true; + } + + /// + /// Aggiorna la data di ultimo utilizzo di un profilo + /// + public async Task UpdateLastUsedAsync(int id) + { + var profile = await _context.DataCouplerProfiles + .FirstOrDefaultAsync(p => p.Id == id); + + if (profile != null) + { + profile.LastUsedAt = DateTime.UtcNow; + await _context.SaveChangesAsync(); + } + } + + /// + /// Verifica se esiste un profilo con il nome specificato + /// + public async Task ProfileExistsAsync(string name, int? excludeId = null) + { + var query = _context.DataCouplerProfiles + .Where(p => p.Name == name && p.IsActive); + + if (excludeId.HasValue) + { + query = query.Where(p => p.Id != excludeId.Value); + } + + return await query.AnyAsync(); + } + + /// + /// Serializza la lista di mapping dei campi in JSON + /// + public string SerializeFieldMappings(List? mappings) + { + if (mappings == null || !mappings.Any()) + return string.Empty; + + return JsonSerializer.Serialize(mappings, new JsonSerializerOptions + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase + }); + } + + /// + /// Deserializza il JSON dei mapping dei campi + /// + public List DeserializeFieldMappings(string? json) + { + if (string.IsNullOrWhiteSpace(json)) + return new List(); + + try + { + return JsonSerializer.Deserialize>(json, new JsonSerializerOptions + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase + }) ?? new List(); + } + catch + { + return new List(); + } + } + + /// + /// Converte un DataCouplerProfile in DTO + /// + public DataCouplerProfileDto ToDto(DataCouplerProfile profile) + { + return new DataCouplerProfileDto + { + Id = profile.Id, + Name = profile.Name, + Description = profile.Description, + SourceType = profile.SourceType, + SourceCredentialId = profile.SourceCredentialId, + SourceSchema = profile.SourceSchema, + SourceTable = profile.SourceTable, + SourceFilePath = profile.SourceFilePath, + DestinationType = profile.DestinationType, + DestinationCredentialId = profile.DestinationCredentialId, + DestinationSchema = profile.DestinationSchema, + DestinationTable = profile.DestinationTable, + DestinationEndpoint = profile.DestinationEndpoint, + FieldMappings = DeserializeFieldMappings(profile.FieldMappingJson) + }; + } + + /// + /// Converte un DTO in DataCouplerProfile + /// + public DataCouplerProfile FromDto(DataCouplerProfileDto dto, string? createdBy = null) + { + return new DataCouplerProfile + { + Id = dto.Id ?? 0, + Name = dto.Name, + Description = dto.Description, + SourceType = dto.SourceType, + SourceCredentialId = dto.SourceCredentialId, + SourceSchema = dto.SourceSchema, + SourceTable = dto.SourceTable, + SourceFilePath = dto.SourceFilePath, + DestinationType = dto.DestinationType, + DestinationCredentialId = dto.DestinationCredentialId, + DestinationSchema = dto.DestinationSchema, + DestinationTable = dto.DestinationTable, + DestinationEndpoint = dto.DestinationEndpoint, + FieldMappingJson = SerializeFieldMappings(dto.FieldMappings), + CreatedBy = createdBy + }; + } +} diff --git a/CredentialManager/Services/IDataCouplerProfileService.cs b/CredentialManager/Services/IDataCouplerProfileService.cs new file mode 100644 index 0000000..1a11cd2 --- /dev/null +++ b/CredentialManager/Services/IDataCouplerProfileService.cs @@ -0,0 +1,49 @@ +using CredentialManager.Models; + +namespace CredentialManager.Services; + +/// +/// Interfaccia per il servizio di gestione dei profili Data Coupler +/// +public interface IDataCouplerProfileService +{ + /// + /// Ottiene tutti i profili attivi + /// + Task> GetAllProfilesAsync(); + + /// + /// Ottiene un profilo per ID + /// + Task GetProfileByIdAsync(int id); + + /// + /// Ottiene un profilo per nome + /// + Task GetProfileByNameAsync(string name); + + /// + /// Salva un nuovo profilo + /// + Task SaveProfileAsync(DataCouplerProfile profile); + + /// + /// Aggiorna un profilo esistente + /// + Task UpdateProfileAsync(DataCouplerProfile profile); + + /// + /// Elimina un profilo + /// + Task DeleteProfileAsync(int id); + + /// + /// Aggiorna la data di ultimo utilizzo di un profilo + /// + Task UpdateLastUsedAsync(int id); + + /// + /// Verifica se esiste un profilo con il nome specificato + /// + Task ProfileExistsAsync(string name, int? excludeId = null); +} diff --git a/CredentialManager/design_time_temp.db b/CredentialManager/design_time_temp.db new file mode 100644 index 0000000000000000000000000000000000000000..a1e3ded84137fc39b56c9b11a8e4b19e3f0f4ae1 GIT binary patch literal 118784 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 Z5P$##AOHafKmY;|fB*y_0D*ZC_z(WN*4zL9 literal 0 HcmV?d00001 diff --git a/Data_Coupler.sln b/Data_Coupler.sln index 03f047d..449531a 100644 --- a/Data_Coupler.sln +++ b/Data_Coupler.sln @@ -9,6 +9,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataConnection", "DataConne EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CredentialManager", "CredentialManager\CredentialManager.csproj", "{30B369DE-A0BA-4AD7-8895-7BEBD244E782}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Components", "Components\Components.csproj", "{B5114CAC-3E03-4150-B93C-652882F66CB7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -55,6 +57,18 @@ Global {30B369DE-A0BA-4AD7-8895-7BEBD244E782}.Release|x64.Build.0 = Release|Any CPU {30B369DE-A0BA-4AD7-8895-7BEBD244E782}.Release|x86.ActiveCfg = Release|Any CPU {30B369DE-A0BA-4AD7-8895-7BEBD244E782}.Release|x86.Build.0 = Release|Any CPU + {B5114CAC-3E03-4150-B93C-652882F66CB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B5114CAC-3E03-4150-B93C-652882F66CB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5114CAC-3E03-4150-B93C-652882F66CB7}.Debug|x64.ActiveCfg = Debug|Any CPU + {B5114CAC-3E03-4150-B93C-652882F66CB7}.Debug|x64.Build.0 = Debug|Any CPU + {B5114CAC-3E03-4150-B93C-652882F66CB7}.Debug|x86.ActiveCfg = Debug|Any CPU + {B5114CAC-3E03-4150-B93C-652882F66CB7}.Debug|x86.Build.0 = Debug|Any CPU + {B5114CAC-3E03-4150-B93C-652882F66CB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B5114CAC-3E03-4150-B93C-652882F66CB7}.Release|Any CPU.Build.0 = Release|Any CPU + {B5114CAC-3E03-4150-B93C-652882F66CB7}.Release|x64.ActiveCfg = Release|Any CPU + {B5114CAC-3E03-4150-B93C-652882F66CB7}.Release|x64.Build.0 = Release|Any CPU + {B5114CAC-3E03-4150-B93C-652882F66CB7}.Release|x86.ActiveCfg = Release|Any CPU + {B5114CAC-3E03-4150-B93C-652882F66CB7}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Data_Coupler/Data_Coupler.csproj b/Data_Coupler/Data_Coupler.csproj index ab66041..106e539 100644 --- a/Data_Coupler/Data_Coupler.csproj +++ b/Data_Coupler/Data_Coupler.csproj @@ -9,6 +9,7 @@ + diff --git a/Data_Coupler/Pages/DataCoupler.razor b/Data_Coupler/Pages/DataCoupler.razor index c4d4298..d5c57fb 100644 --- a/Data_Coupler/Pages/DataCoupler.razor +++ b/Data_Coupler/Pages/DataCoupler.razor @@ -15,6 +15,7 @@ @inject IDataConnectionFactory ConnectionFactory @inject IJSRuntime JSRuntime @inject ILogger Logger +@inject CredentialManager.Services.IDataCouplerProfileService ProfileService Data Coupler @@ -24,7 +25,19 @@

Data Coupler - Coupling Database e REST API

Connetti database e servizi REST per il trasferimento dati

-
+
+ + +
+
+ +
+
+ +
@@ -1103,6 +1116,31 @@ }
+ +@if (isDatabaseConnected && isRestConnected && fieldMappings.Any()) +{ +
+
+ +
+
+} + + + + @if (showDatabaseSelectionModal) { diff --git a/Data_Coupler/Pages/DataCoupler.razor.cs b/Data_Coupler/Pages/DataCoupler.razor.cs index baa9c24..880a2a5 100644 --- a/Data_Coupler/Pages/DataCoupler.razor.cs +++ b/Data_Coupler/Pages/DataCoupler.razor.cs @@ -2,6 +2,7 @@ using System; using System.Data; using System.Text; using CredentialManager.Models; +using CredentialManager.Services; using DataConnection.Interfaces; using DataConnection.REST.Interfaces; using DataConnection.REST.Models; @@ -109,6 +110,11 @@ public partial class DataCoupler private IDatabaseManager? currentDatabaseManager = null; private IRestMetadataDiscovery? currentRestDiscovery = null; private IRestServiceClient? currentRestClient = null; + + // Gestione Profili + private List availableProfiles = new(); + private bool isLoadingProfiles = false; + private bool showProfileManagement = false; protected override async Task OnInitializedAsync() { @@ -119,6 +125,8 @@ public partial class DataCoupler { databaseCredentials = await CredentialService.GetAllDatabaseCredentialsAsync(); restApiCredentials = await CredentialService.GetAllRestApiCredentialsAsync(); + // Carica anche i profili disponibili + await LoadProfiles(); } catch (Exception ex) { @@ -127,6 +135,241 @@ public partial class DataCoupler } } + private async Task LoadProfiles() + { + try + { + isLoadingProfiles = true; + var profiles = await ProfileService.GetAllProfilesAsync(); + availableProfiles = profiles.ToList(); + } + catch (Exception ex) + { + Logger.LogError(ex, "Errore nel caricamento dei profili"); + } + finally + { + isLoadingProfiles = false; + StateHasChanged(); + } + } + + private async Task OnProfileLoaded(DataCouplerProfile profile) + { + try + { + // Aggiorna la data di ultimo utilizzo + await ProfileService.UpdateLastUsedAsync(profile.Id); + + // Applica la configurazione del profilo + await ApplyProfileConfiguration(profile); + + // Ricarica i profili per aggiornare la data di ultimo utilizzo + await LoadProfiles(); + } + catch (Exception ex) + { + Logger.LogError(ex, "Errore nel caricamento del profilo"); + await JSRuntime.InvokeVoidAsync("alert", $"Errore nel caricamento del profilo: {ex.Message}"); + } + } + + private async Task ApplyProfileConfiguration(DataCouplerProfile profile) + { + // Reset dello stato corrente + ResetAllState(); + + // Applica configurazione sorgente + selectedSourceType = profile.SourceType; + + if (profile.SourceCredentialId.HasValue) + { + // Per ora, uso il nome della credenziale come identificatore + // TODO: Implementare risoluzione corretta tramite ID quando disponibile + // In alternativa, potremmo aggiungere il nome della credenziale al profilo + + // Se c'è uno schema salvato nel profilo, utilizziamolo per la connessione + if (!string.IsNullOrEmpty(profile.SourceSchema)) + { + Logger.LogInformation("Applicando schema dal profilo: {Schema}", profile.SourceSchema); + // Prima verifichiamo che ci sia una credenziale selezionata + if (!string.IsNullOrEmpty(selectedDatabaseCredential)) + { + await ConnectToDatabaseWithSchema(profile.SourceSchema); + } + else + { + Logger.LogWarning("Nessuna credenziale database selezionata per applicare lo schema"); + } + } + else if (!string.IsNullOrEmpty(selectedDatabaseCredential)) + { + // Connetti al database senza schema specifico + await ConnectToDatabase(); + } + + // Seleziona la tabella se specificata + if (!string.IsNullOrEmpty(profile.SourceTable)) + { + selectedTable = profile.SourceTable; + } + } + + // Applica configurazione destinazione + if (profile.DestinationCredentialId.HasValue) + { + // Similmente, per ora gestiamo senza risoluzione diretta dell'ID + // TODO: Implementare risoluzione corretta tramite ID quando disponibile + + if (!string.IsNullOrEmpty(selectedRestCredential)) + { + // Connetti al servizio REST + await ConnectToRestApi(); + + // Trova e seleziona l'entità REST + if (!string.IsNullOrEmpty(profile.DestinationEndpoint)) + { + var entity = restEntities.FirstOrDefault(e => e.Name == profile.DestinationEndpoint); + if (entity != null) + { + await SelectRestEntity(entity); + } + else + { + Logger.LogWarning("Entità REST con endpoint {Endpoint} non trovata", profile.DestinationEndpoint); + } + } + } + } + + // Applica mapping dei campi se disponibile + if (!string.IsNullOrEmpty(profile.FieldMappingJson)) + { + try + { + var service = new DataCouplerProfileService(null!); // Temporaneo per deserializzazione + var mappings = service.DeserializeFieldMappings(profile.FieldMappingJson); + + // Applica i mapping + fieldMappings.Clear(); + keyFields.Clear(); + + foreach (var mapping in mappings) + { + fieldMappings[mapping.SourceField] = mapping.DestinationField; + if (mapping.IsKey) + { + keyFields.Add(mapping.DestinationField); + } + } + + Logger.LogInformation("Applicati {MappingCount} mapping dei campi dal profilo", mappings.Count); + } + catch (Exception ex) + { + Logger.LogWarning(ex, "Errore nel caricamento dei mapping dei campi dal profilo"); + } + } + + StateHasChanged(); + } + + private async Task OnProfileSaved(DataCouplerProfileDto profileDto) + { + try + { + var profileService = new DataCouplerProfileService(null!); // Usa il service di conversione + var profile = profileService.FromDto(profileDto, "System"); // TODO: Usa utente corrente + + await ProfileService.SaveProfileAsync(profile); + await LoadProfiles(); // Ricarica la lista + + await JSRuntime.InvokeVoidAsync("alert", $"Profilo '{profileDto.Name}' salvato con successo!"); + } + catch (Exception ex) + { + Logger.LogError(ex, "Errore nel salvataggio del profilo"); + await JSRuntime.InvokeVoidAsync("alert", $"Errore nel salvataggio del profilo: {ex.Message}"); + } + } + + private async Task OnProfileDeleted(int profileId) + { + try + { + var deleted = await ProfileService.DeleteProfileAsync(profileId); + if (deleted) + { + await LoadProfiles(); // Ricarica la lista + } + } + catch (Exception ex) + { + Logger.LogError(ex, "Errore nell'eliminazione del profilo"); + throw; // Rilancia per gestire nell'UI + } + } + + private void OnManageProfiles() + { + showProfileManagement = true; + } + + private void OnCloseProfileManagement() + { + showProfileManagement = false; + } + + private bool CanSaveProfile() + { + return !string.IsNullOrEmpty(selectedSourceType) && + (!string.IsNullOrEmpty(selectedDatabaseCredential) || !string.IsNullOrEmpty(selectedRestCredential)) && + (!string.IsNullOrEmpty(selectedRestCredential) || !string.IsNullOrEmpty(selectedTable)); + } + + private List GetCurrentFieldMappings() + { + var mappings = new List(); + + foreach (var mapping in fieldMappings) + { + mappings.Add(new FieldMappingDto + { + SourceField = mapping.Key, + DestinationField = mapping.Value, + IsKey = keyFields.Contains(mapping.Value), + IsRequired = false, // TODO: Determina dai metadati + DataType = "", // TODO: Determina dai metadati + }); + } + + return mappings; + } + + private void ResetAllState() + { + ResetSourceState(); + ResetDestinationState(); + fieldMappings.Clear(); + keyFields.Clear(); + transferResults.Clear(); + transferMessage = ""; + } + + private void ResetDestinationState() + { + selectedRestCredential = ""; + isConnectingRest = false; + isRestConnected = false; + restErrorMessage = ""; + restEntities.Clear(); + selectedRestEntity = null; + restEntityDetails = null; + restSearchTerm = ""; + currentRestDiscovery = null; + currentRestClient = null; + } + private void OnSourceTypeChanged(ChangeEventArgs e) { selectedSourceType = e.Value?.ToString() ?? ""; @@ -564,7 +807,7 @@ public partial class DataCoupler if (databaseTables.Count == 0) { // Se non ci sono tabelle, potrebbe essere perché non è stato selezionato un database specifico - await HandleDatabaseSelectionRequired(); + HandleDatabaseSelectionRequired(); return; } } @@ -1103,7 +1346,6 @@ public partial class DataCoupler } } - CreateNewRecord: // Crea un nuovo record var result = await currentRestClient.CreateEntityAsync(selectedRestEntity.Name, restData); @@ -1526,235 +1768,322 @@ public partial class DataCoupler } } - private async Task HandleDatabaseSelectionRequired() + /// + /// Gestisce la connessione al database con schema specifico + /// + private async Task ConnectToDatabaseWithSchema(string? specificSchema = null) { + if (string.IsNullOrEmpty(selectedDatabaseCredential)) + return; + + isConnectingDatabase = true; + databaseErrorMessage = ""; + try { - if (currentDatabaseManager == null) + // Trova la credenziale + var credential = databaseCredentials.FirstOrDefault(c => c.Name == selectedDatabaseCredential); + if (credential == null) { - databaseErrorMessage = "Database manager non inizializzato"; + databaseErrorMessage = "Credenziale database non trovata"; return; } - // Ottieni la lista dei database disponibili - availableDatabases = await currentDatabaseManager.GetAvailableDatabasesAsync(); - - if (availableDatabases != null && availableDatabases.Any()) + // Test della connessione + var (success, message) = await CredentialService.TestDatabaseConnectionAsync(credential.Name); + if (!success) { - // Mostra il modal per la selezione del database - showDatabaseSelectionModal = true; - StateHasChanged(); + databaseErrorMessage = $"Connessione fallita: {message}"; + return; + } + + // Crea il database manager + Logger.LogInformation("Creando database manager per credenziale: {CredentialName}", selectedDatabaseCredential); + currentDatabaseManager = await ConnectionFactory.CreateDatabaseManagerAsync(selectedDatabaseCredential); + Logger.LogInformation("Database manager creato con successo"); + + // Se è specificato uno schema, utilizzalo direttamente + if (!string.IsNullOrEmpty(specificSchema)) + { + Logger.LogInformation("Utilizzando schema specifico: {Schema}", specificSchema); + await LoadSchemaForDatabase(specificSchema); } else { - databaseErrorMessage = "Nessun database disponibile per la selezione"; + // Prova il discovery automatico dello schema + await DiscoverDatabaseSchema(); + } + + if (databaseTables.Count > 0) + { + isDatabaseConnected = true; + Logger.LogInformation("Connessione database completata con {TableCount} tabelle", databaseTables.Count); } } catch (Exception ex) { - Logger.LogError(ex, "Errore nell'ottenere la lista dei database disponibili"); - databaseErrorMessage = $"Errore nel recupero dei database: {ex.Message}"; + Logger.LogError(ex, "Errore nella connessione al database"); + databaseErrorMessage = $"Errore: {ex.Message}"; + } + finally + { + isConnectingDatabase = false; + StateHasChanged(); } } - private async Task OnDatabaseSelected() + /// + /// Scopre automaticamente lo schema del database + /// + private async Task DiscoverDatabaseSchema() { - if (string.IsNullOrEmpty(selectedDatabase)) - { - return; - } - - if (currentDatabaseManager == null) - { - databaseErrorMessage = "Database manager non inizializzato"; - return; - } - try { - // Cambia il database attivo - await currentDatabaseManager.ChangeDatabaseAsync(selectedDatabase); + Logger.LogInformation("Iniziando discovery automatico dello schema"); + var schema = await currentDatabaseManager!.GetDatabaseSchemaAsync(); - // Nasconde il modal - showDatabaseSelectionModal = false; - - // Ritenta il discovery dello schema - var schema = await currentDatabaseManager.GetDatabaseSchemaAsync(); + Logger.LogInformation("Schema discovery completato. Numero elementi: {Count}", schema?.Count() ?? 0); + databaseTables = schema as Dictionary> ?? (schema != null ? new Dictionary>(schema) : new Dictionary>()); if (databaseTables.Count == 0) { - databaseErrorMessage = $"Il database '{selectedDatabase}' non contiene tabelle accessibili"; + // Se non ci sono tabelle, potrebbe essere necessario selezionare un database specifico + HandleDatabaseSelectionRequired(); } else { - isDatabaseConnected = true; - databaseErrorMessage = ""; + // Rileva e salva lo schema corrente se presente nelle chiavi delle tabelle + var firstTableKey = databaseTables.Keys.FirstOrDefault(); + if (!string.IsNullOrEmpty(firstTableKey) && firstTableKey.Contains('.')) + { + var detectedSchema = firstTableKey.Split('.')[0]; + Logger.LogInformation("Schema rilevato automaticamente: {Schema}", detectedSchema); + } } } catch (Exception ex) { - Logger.LogError(ex, "Errore nel cambio di database a {Database}", selectedDatabase); - databaseErrorMessage = $"Errore nel cambio di database: {ex.Message}"; - } - finally - { - StateHasChanged(); + Logger.LogError(ex, "Errore durante il discovery automatico dello schema"); + throw; } } - private void CancelDatabaseSelection() + /// + /// Carica lo schema per un database specifico + /// + private async Task LoadSchemaForDatabase(string schemaName) { - showDatabaseSelectionModal = false; - selectedDatabase = ""; + try + { + // TODO: Implementare la logica specifica per il caricamento di uno schema + // Per ora utilizziamo il discovery standard e filtriamo i risultati + var schema = await currentDatabaseManager!.GetDatabaseSchemaAsync(); + + databaseTables = schema as Dictionary> ?? + new Dictionary>(); + + // Filtra le tabelle per lo schema specificato + if (!string.IsNullOrEmpty(schemaName)) + { + var filteredTables = databaseTables + .Where(kvp => kvp.Key.StartsWith($"{schemaName}.", StringComparison.OrdinalIgnoreCase)) + .ToDictionary(kvp => kvp.Key, kvp => kvp.Value); + + if (filteredTables.Any()) + { + databaseTables = filteredTables; + Logger.LogInformation("Caricate {TableCount} tabelle per lo schema {Schema}", filteredTables.Count, schemaName); + } + else + { + Logger.LogWarning("Nessuna tabella trovata per lo schema {Schema}", schemaName); + } + } + } + catch (Exception ex) + { + Logger.LogError(ex, "Errore nel caricamento dello schema {Schema}", schemaName); + throw; + } + } + + /// + /// Gestisce la situazione quando è richiesta la selezione di un database specifico + /// + private void HandleDatabaseSelectionRequired() + { + try + { + // Prova a ottenere la lista dei database disponibili + // TODO: Implementare se il DatabaseManager supporta GetAvailableDatabases + Logger.LogInformation("Database selection richiesta - implementazione da completare"); + + // Per ora, impostiamo un messaggio di errore informativo + databaseErrorMessage = "Schema discovery non ha restituito risultati. Potrebbe essere necessario specificare un database o schema specifico nella connessione."; + } + catch (Exception ex) + { + Logger.LogError(ex, "Errore nella gestione della selezione database"); + databaseErrorMessage = $"Errore nella selezione database: {ex.Message}"; + } + } + + /// + /// Estrae lo schema dal nome completo di una tabella + /// + private string? ExtractSchemaFromTableName(string fullTableName) + { + if (string.IsNullOrEmpty(fullTableName) || !fullTableName.Contains('.')) + return null; + + var parts = fullTableName.Split('.'); + return parts.Length > 1 ? parts[0] : null; + } + + /// + /// Ottiene lo schema correntemente utilizzato dal database connesso + /// + private string? GetCurrentDatabaseSchema() + { + if (!databaseTables.Any()) + return null; + + var firstTable = databaseTables.Keys.FirstOrDefault(); + return !string.IsNullOrEmpty(firstTable) ? ExtractSchemaFromTableName(firstTable) : null; + } + + /// + /// Ottiene il campo ID dell'entità REST selezionata + /// + private string GetEntityIdField() + { + if (restEntityDetails?.Properties != null) + { + // Cerca il campo ID (tipicamente "Id", "ID", "id", o il primo campo che contiene "id") + var idProperty = restEntityDetails.Properties.FirstOrDefault(p => + p.Name.Equals("Id", StringComparison.OrdinalIgnoreCase) || + p.Name.Equals("ID", StringComparison.OrdinalIgnoreCase) || + p.Name.Contains("id", StringComparison.OrdinalIgnoreCase)); + + return idProperty?.Name ?? "Id"; // Default a "Id" se non trovato + } + return "Id"; + } + + /// + /// Verifica se una query è una SELECT query sicura + /// + private bool IsSelectQuery(string query) + { + if (string.IsNullOrWhiteSpace(query)) + return false; + + var trimmedQuery = query.Trim(); + return trimmedQuery.StartsWith("SELECT", StringComparison.OrdinalIgnoreCase); + } + + /// + /// Pulisce una query SQL rimuovendo caratteri pericolosi + /// + private string CleanQuery(string query) + { + if (string.IsNullOrWhiteSpace(query)) + return ""; + + // Rimuove caratteri potenzialmente pericolosi + var cleanQuery = query.Trim(); + + // Rimuove eventuali terminatori multipli + while (cleanQuery.EndsWith(";")) + { + cleanQuery = cleanQuery.Substring(0, cleanQuery.Length - 1).Trim(); + } + + return cleanQuery; + } + + /// + /// Gestisce il cambio di modalità tra tabelle e query custom + /// + private void OnQueryModeChanged(ChangeEventArgs e) + { + useCustomQuery = (bool)(e.Value ?? false); + + // Reset stato quando cambia modalità + if (useCustomQuery) + { + // Reset selezione tabella + selectedTable = ""; + ClearAllMappings(); + } + else + { + // Reset query custom + customQuery = ""; + isQueryValid = false; + queryValidationMessage = ""; + queryPreviewData.Clear(); + queryColumns.Clear(); + showQueryPreview = false; + } + StateHasChanged(); } /// - /// Ottiene il nome del campo ID per l'entità corrente + /// Valida la query SQL custom /// - private string GetEntityIdField() - { - // Fallback predefiniti in base al tipo di servizio/entità - if (selectedRestEntity?.Name != null) - { - // Per SAP B1, la maggior parte delle entità usa DocEntry - if (selectedRestEntity.Name.Contains("BusinessPartner") || - selectedRestEntity.Name.Contains("Customer") || - selectedRestEntity.Name.Contains("Vendor")) - { - return "CardCode"; - } - - if (selectedRestEntity.Name.Contains("Item") || - selectedRestEntity.Name.Contains("Product")) - { - return "ItemCode"; - } - } - - // Usa campi ID comuni come fallback - var commonIdFields = new[] { "DocEntry", "Id", "ID", "id", "Key", "key", "Code", "code" }; - - // Per ora usa DocEntry come default per SAP B1 - return "DocEntry"; - } - - // Custom Query Methods - private void OnQueryModeChanged(ChangeEventArgs e) - { - useCustomQuery = bool.Parse(e.Value?.ToString() ?? "false"); - - if (useCustomQuery) - { - // Reset table selection when switching to custom query - selectedTable = ""; - ClearAllMappings(); - - // Reset query-specific state - customQuery = ""; - isQueryValid = false; - queryValidationMessage = ""; - queryPreviewData.Clear(); - queryColumns.Clear(); - showQueryPreview = false; - - // For custom queries, require manual key selection - sourceKeyField = ""; - suggestedPrimaryKey = ""; - requiresManualKeySelection = true; - } - else - { - // Reset custom query when switching to table mode - customQuery = ""; - isQueryValid = false; - queryValidationMessage = ""; - queryPreviewData.Clear(); - queryColumns.Clear(); - showQueryPreview = false; - ClearAllMappings(); - - // Reset key field selection - sourceKeyField = ""; - suggestedPrimaryKey = ""; - requiresManualKeySelection = false; - } - - StateHasChanged(); - } - private async Task ValidateCustomQuery() { if (string.IsNullOrWhiteSpace(customQuery) || currentDatabaseManager == null) { isQueryValid = false; - queryValidationMessage = "Query vuota o database non connesso"; - return; - } - - // CONTROLLO DI SICUREZZA: Verifica che sia una SELECT - if (!IsSelectQuery(customQuery)) - { - isQueryValid = false; - queryValidationMessage = "ERRORE DI SICUREZZA: Sono permesse solo query SELECT. Operazioni come INSERT, UPDATE, DELETE, DROP, CREATE, ALTER, TRUNCATE non sono consentite."; - Logger.LogWarning("Tentativo di eseguire query non SELECT bloccato: {Query}", customQuery.Length > 100 ? customQuery.Substring(0, 100) + "..." : customQuery); + queryValidationMessage = "Query vuota o manager database non disponibile"; return; } isValidatingQuery = true; - queryValidationMessage = ""; - queryColumns.Clear(); try { - // Converte la query per testare solo 1 riga - var testQuery = ConvertQueryForValidation(customQuery); + // Controllo di sicurezza: verifica che sia una SELECT + if (!IsSelectQuery(customQuery)) + { + isQueryValid = false; + queryValidationMessage = "Solo query SELECT sono permesse per sicurezza"; + return; + } + + var cleanQuery = CleanQuery(customQuery); - Logger.LogInformation("Validazione query: {TestQuery}", testQuery); - - // Esegue la query di test - var testResults = await currentDatabaseManager.ExecuteRawQueryAsync(testQuery); + // Prova a eseguire la query per validarla + var testResults = await currentDatabaseManager.ExecuteRawQueryAsync($"{cleanQuery} LIMIT 1"); if (testResults != null && testResults.Any()) { + var firstRow = testResults.First(); + queryColumns = firstRow.Keys.ToList(); isQueryValid = true; + queryValidationMessage = $"Query valida - {queryColumns.Count} colonne rilevate"; - // Estrae i nomi delle colonne dal primo record - var firstRecord = testResults.First(); - queryColumns = firstRecord.Keys.ToList(); + // Clear mappings quando cambia la query + ClearAllMappings(); - // Non mostra più messaggi di successo per ridurre l'ingombro visivo - queryValidationMessage = ""; - - Logger.LogInformation("Query validata con successo. Colonne: {Columns}", string.Join(", ", queryColumns)); - - // Clear existing mappings since we have new columns - fieldMappings.Clear(); - selectedDbColumn = ""; - selectedRestProperty = ""; - - // For custom queries, always require manual key selection - sourceKeyField = ""; - suggestedPrimaryKey = ""; - requiresManualKeySelection = true; - - StateHasChanged(); + Logger.LogInformation("Query validata con successo: {ColumnCount} colonne", queryColumns.Count); } else { isQueryValid = false; - queryValidationMessage = "Query valida ma non restituisce risultati"; - queryColumns.Clear(); + queryValidationMessage = "La query non ha restituito risultati o colonne"; } } catch (Exception ex) { + Logger.LogError(ex, "Errore nella validazione della query"); isQueryValid = false; queryValidationMessage = $"Errore nella validazione: {ex.Message}"; - queryColumns.Clear(); - Logger.LogError(ex, "Errore nella validazione della query custom"); } finally { @@ -1763,31 +2092,33 @@ public partial class DataCoupler } } + /// + /// Carica un'anteprima dei dati della query + /// private async Task LoadQueryPreview() { if (!isQueryValid || string.IsNullOrWhiteSpace(customQuery) || currentDatabaseManager == null) - { return; - } isLoadingPreview = true; try { - // Usa la query limitata per il preview (max 50 righe per performance) - var previewQuery = ConvertQueryForPreview(customQuery, 50); + var cleanQuery = CleanQuery(customQuery); - Logger.LogInformation("Caricamento preview query: {PreviewQuery}", previewQuery); + // Aggiungi LIMIT per l'anteprima + var previewQuery = $"{cleanQuery} LIMIT 10"; - queryPreviewData = await currentDatabaseManager.ExecuteRawQueryAsync(previewQuery); + var previewResults = await currentDatabaseManager.ExecuteRawQueryAsync(previewQuery); + queryPreviewData = previewResults.ToList(); showQueryPreview = true; - Logger.LogInformation("Preview caricato: {RowCount} righe", queryPreviewData.Count); + Logger.LogInformation("Caricata anteprima query con {RecordCount} record", queryPreviewData.Count); } catch (Exception ex) { - queryValidationMessage = $"Errore nel caricamento preview: {ex.Message}"; - Logger.LogError(ex, "Errore nel caricamento del preview della query"); + Logger.LogError(ex, "Errore nel caricamento anteprima query"); + queryValidationMessage = $"Errore anteprima: {ex.Message}"; } finally { @@ -1796,223 +2127,70 @@ public partial class DataCoupler } } + /// + /// Nasconde l'anteprima della query + /// private void HideQueryPreview() { showQueryPreview = false; - queryPreviewData.Clear(); StateHasChanged(); } - private string ConvertQueryForValidation(string originalQuery) + /// + /// Ottiene l'ID della credenziale sorgente corrente + /// + private int? GetCurrentSourceCredentialId() { - // Rimuove commenti e spazi extra - var cleanQuery = CleanQuery(originalQuery); - - // Se la query ha già un LIMIT/TOP, la usa così com'è per il test - if (HasLimitClause(cleanQuery)) - { - return cleanQuery; - } - - // Aggiunge LIMIT/TOP in base al tipo di database - return AddLimitClause(cleanQuery, 1); + // TODO: Implementare logica per ottenere l'ID dalla credenziale selezionata + // Per ora ritorniamo null dato che i DTO non hanno ID + return null; } - private string ConvertQueryForPreview(string originalQuery, int maxRows = 50) + /// + /// Ottiene l'ID della credenziale destinazione corrente + /// + private int? GetCurrentDestinationCredentialId() { - var cleanQuery = CleanQuery(originalQuery); - - // Se la query ha già un LIMIT/TOP con un valore minore, la mantiene - if (HasLimitClause(cleanQuery)) - { - return cleanQuery; - } - - return AddLimitClause(cleanQuery, maxRows); + // TODO: Implementare logica per ottenere l'ID dalla credenziale selezionata + // Per ora ritorniamo null dato che i DTO non hanno ID + return null; } - private string CleanQuery(string query) + /// + /// Annulla la selezione del database + /// + private void CancelDatabaseSelection() { - if (string.IsNullOrWhiteSpace(query)) - return ""; - - // Rimuove commenti SQL - var lines = query.Split('\n') - .Select(line => line.Contains("--") ? line.Substring(0, line.IndexOf("--")) : line) - .Where(line => !string.IsNullOrWhiteSpace(line)); - - var cleanQuery = string.Join(" ", lines).Trim(); - - // Rimuove il punto e virgola finale se presente - if (cleanQuery.EndsWith(";")) - { - cleanQuery = cleanQuery.Substring(0, cleanQuery.Length - 1); - } - - return cleanQuery; - } - - private bool HasLimitClause(string query) - { - var upperQuery = query.ToUpperInvariant(); - return upperQuery.Contains(" LIMIT ") || - upperQuery.Contains(" TOP ") || - upperQuery.Contains("ROWNUM") || - upperQuery.Contains("FETCH FIRST"); - } - - private string AddLimitClause(string query, int limit) - { - var upperQuery = query.ToUpperInvariant(); - - // Per SQL Server, Oracle, e altri che supportano TOP - if (upperQuery.Contains("SELECT ")) - { - var credential = databaseCredentials.FirstOrDefault(c => c.Name == selectedDatabaseCredential); - if (credential != null) - { - var dbType = credential.DatabaseType.ToString().ToLowerInvariant(); - switch (dbType) - { - case "sqlserver": - case "oracle": - // Aggiunge TOP dopo SELECT - return query.Replace("SELECT ", $"SELECT TOP {limit} ", StringComparison.OrdinalIgnoreCase); - - case "mysql": - case "postgresql": - case "sqlite": - default: - // Aggiunge LIMIT alla fine - return $"{query} LIMIT {limit}"; - } - } - } - - // Fallback: aggiunge LIMIT - return $"{query} LIMIT {limit}"; - } - - private void OnCustomQueryChanged(ChangeEventArgs e) - { - customQuery = e.Value?.ToString() ?? ""; - - // Reset validation quando la query cambia - isQueryValid = false; - queryValidationMessage = ""; - queryPreviewData.Clear(); - queryColumns.Clear(); - showQueryPreview = false; - - // Clear mappings quando la query cambia - ClearAllMappings(); - - // Reset key field selection - sourceKeyField = ""; - suggestedPrimaryKey = ""; - requiresManualKeySelection = true; - + showDatabaseSelectionModal = false; + selectedDatabase = ""; StateHasChanged(); } - + /// - /// Verifica che la query sia una SELECT e non contenga operazioni pericolose + /// Conferma la selezione del database /// - private bool IsSelectQuery(string query) + private async Task OnDatabaseSelected() { - if (string.IsNullOrWhiteSpace(query)) - return false; + if (string.IsNullOrEmpty(selectedDatabase)) + return; + + showDatabaseSelectionModal = false; + + try + { + // TODO: Implementare la logica per connettersi al database selezionato + Logger.LogInformation("Database selezionato: {Database}", selectedDatabase); - // Rimuovi commenti e normalizza la query - var cleanQuery = CleanQueryForSecurityCheck(query); - - // Lista delle operazioni pericolose che non sono permesse - var dangerousKeywords = new[] + // Per ora, chiudi semplicemente il dialog + await Task.CompletedTask; + } + catch (Exception ex) { - "INSERT", "UPDATE", "DELETE", "DROP", "CREATE", "ALTER", - "TRUNCATE", "REPLACE", "MERGE", "EXEC", "EXECUTE", - "DECLARE", "SET", "GRANT", "REVOKE", "BACKUP", "RESTORE", - "SHUTDOWN", "KILL", "LOAD", "BULK", "OPENROWSET", "OPENDATASOURCE" - }; - - // Verifica che non contenga operazioni pericolose - foreach (var keyword in dangerousKeywords) - { - if (cleanQuery.Contains($" {keyword} ", StringComparison.OrdinalIgnoreCase) || - cleanQuery.StartsWith($"{keyword} ", StringComparison.OrdinalIgnoreCase) || - cleanQuery.Contains($";{keyword} ", StringComparison.OrdinalIgnoreCase) || - cleanQuery.Contains($"\n{keyword} ", StringComparison.OrdinalIgnoreCase) || - cleanQuery.Contains($"\r{keyword} ", StringComparison.OrdinalIgnoreCase)) - { - Logger.LogWarning("Query bloccata: contiene keyword pericolosa '{Keyword}' in query: {QueryStart}", - keyword, query.Length > 50 ? query.Substring(0, 50) + "..." : query); - return false; - } + Logger.LogError(ex, "Errore nella selezione del database"); + databaseErrorMessage = $"Errore nella selezione database: {ex.Message}"; } - // Verifica che inizi con SELECT (permettendo spazi e commenti iniziali) - var trimmedQuery = cleanQuery.TrimStart(); - if (!trimmedQuery.StartsWith("SELECT", StringComparison.OrdinalIgnoreCase)) - { - Logger.LogWarning("Query bloccata: non inizia con SELECT. Query: {QueryStart}", - query.Length > 50 ? query.Substring(0, 50) + "..." : query); - return false; - } - - // Verifica addizionale: non deve contenere punto e virgola seguito da altra query - var statements = cleanQuery.Split(';', StringSplitOptions.RemoveEmptyEntries); - if (statements.Length > 1) - { - // Se ci sono multiple statements, tutte devono essere SELECT o commenti vuoti - foreach (var statement in statements) - { - var trimmedStatement = statement.Trim(); - if (!string.IsNullOrEmpty(trimmedStatement) && - !trimmedStatement.StartsWith("SELECT", StringComparison.OrdinalIgnoreCase)) - { - Logger.LogWarning("Query bloccata: contiene multiple statements non SELECT. Query: {QueryStart}", - query.Length > 50 ? query.Substring(0, 50) + "..." : query); - return false; - } - } - } - - return true; - } - - /// - /// Pulisce la query per il controllo di sicurezza rimuovendo commenti - /// - private string CleanQueryForSecurityCheck(string query) - { - if (string.IsNullOrEmpty(query)) - return ""; - - var lines = query.Split('\n'); - var cleanedLines = new List(); - - foreach (var line in lines) - { - var cleanedLine = line.Trim(); - - // Rimuovi commenti SQL (-- e /* */) - var dashCommentIndex = cleanedLine.IndexOf("--"); - if (dashCommentIndex >= 0) - { - cleanedLine = cleanedLine.Substring(0, dashCommentIndex).Trim(); - } - - // Gestione commenti multiline /* */ - implementazione base - cleanedLine = System.Text.RegularExpressions.Regex.Replace(cleanedLine, @"/\*.*?\*/", " ", - System.Text.RegularExpressions.RegexOptions.IgnoreCase); - - if (!string.IsNullOrWhiteSpace(cleanedLine)) - { - cleanedLines.Add(cleanedLine); - } - } - - return string.Join(" ", cleanedLines); + StateHasChanged(); } } diff --git a/Data_Coupler/_Imports.razor b/Data_Coupler/_Imports.razor index 180d9ab..93c48d4 100644 --- a/Data_Coupler/_Imports.razor +++ b/Data_Coupler/_Imports.razor @@ -1,5 +1,4 @@ @using System.Net.Http -@using Microsoft.AspNetCore.Authorization @using Microsoft.AspNetCore.Components.Authorization @using Microsoft.AspNetCore.Components.Forms @using Microsoft.AspNetCore.Components.Routing @@ -8,3 +7,4 @@ @using Microsoft.JSInterop @using Data_Coupler @using Data_Coupler.Shared +@using Components diff --git a/Data_Coupler/wwwroot/data/credentials.db b/Data_Coupler/wwwroot/data/credentials.db index aeb0244e0d05bceb913c098ffb12c4987ca3213f..cbf213ec82d02b2b087886b5b4005590ce4d1acb 100644 GIT binary patch literal 86016 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

L-af)H39J@wW~602XuoA*rT;bO25ZF;sg|^ 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 J{-5TT{|DPY%i90| diff --git a/Data_Coupler/wwwroot/data/credentials.db-shm b/Data_Coupler/wwwroot/data/credentials.db-shm index c6bea818e17d4350480fbcc9a61a95f0db9bdc26..fe9ac2845eca6fe6da8a63cd096d9cf9e24ece10 100644 GIT binary patch delta 98 zcmZo@U}|V!;+1%$%K!t6lLPssMJ?DR*i0wi=ERUufXTqr|3?Fx1Nqk)Z%*K!2O?}G E0F+xG5&!@I literal 32768 zcmeI*1*}xp8U^6B){ncpySux)T-@E=-QC^Y-D!(d(H3c`K#M!HP=P8?0p8q~kn|-D zm)COh$bJ7wc5*Xk?mv5fd!0RJlF95uH?rf|K_J#{1L6lBh!b>b|Jdql_dE)Ex~=?% zNI|n2Hf+8r--6zW{>$e-s~ueT>7R~2KOX#dv_Oj zBJc;gaVw*#sut^|6!ao4-~uk-0xsYJF5m(#-~uk-0xs~%2z-Obh{;sU%`&XRwj9LC zT*7U9kDu^5f21jqGOLKHskwS+q-JTo_Uf2_LVjgt&^z+?1rFi~x^p|DtGbqGR^WF@ z{cr&nZ~+%^0T*xq7jOX=Z~+%^fv_S#L=Nnykr=6w8M#pyrBNBR&0Ug(;IYQ9D{YmnmNl|g*2#L=ARA?qY_=`2HMYe+#fO!khRQgED1n`1 zk{}JTAPjN!VSI=)xP)8y4!;C8tcb+eOw2UQ z!n`cXa;(OBY{vHN$sruWshrDYT*sZ<$Adi1&v=11`3-;O9}KUUN}@E%s=O+ua;m8Y zYN?Lur9m34$(o~O+Nhn{uY)?F&vZdI^tFD}Z<0l^IF`iHSQg7;MXZcfvD((yT3cu9 zZG&yJO}06<)YjToPk*SSCae@SL=EhrloV-^6?stP9KlEU9G7t$_wWE@WX53|KaezaaLdr zHed^OWN!}RI8Nt$uHXjl=9@gslRU#qyv^_UfKM1vv6W2elwJ8%LKRd?jnrD5)ki}# zR#P=kE3{d=^_C9nL!Hqj-O{)ES$`;;MYDL8%+gsl%V))`oK>^B*3{ZsSLI~s-qs7p&h!RABJHZrePkIVI8*N4ZMT* z@iETgD!#(^cm!iq#$z(3XLc4~307oHHe^e7Vjm9Yc+TJguH;6(#gUnKGNs9tlRodzv!{TTXc(W z$t}HQxBOPz%3F1-XU(jgb+djp%*NR?n{O*@gYEG2hn1j)$~Ynf_LEG26v%)aD1Z{E zfEuWe=4g-Z=#SwTkLj3?v~5=bxL38ioVo6Ju&vRxQ(~zw!l`} zM%(G>50%t}m7);?JEL`^h63v@sa48RCXzzi(F3T(g*?8SRHhEH)G z*Krp=;x~k6bS7X5W@JtlVkuT;EjDIrc40q`tO?IgiWv+w$N7DCfnud4=X_pm2pH0>>->8sgMb|Pza?^2|;Lx zmN<^D@jGHLC3CSfYqJgea}pPG3*Y6(yv83W#aAX3RuwfJRWh?!W3mDq@#*oOl+fzNOOH}De%a1>{A z4HGDpa;uEiYP;UkCn{v6tda#;Lu+Xrt)~sNkv7q0+G1O6n=N=BZ$Dh%)fR}rgv`Xk jtimSj%7NU&4|tAu`5U7uq3Wr<256!dY2E+*cbfkNHjX0< diff --git a/Data_Coupler/wwwroot/data/credentials.db-wal b/Data_Coupler/wwwroot/data/credentials.db-wal index 11e98fa2722fa680d2a1df66f1f08f52a8511e3e..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 3897552 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%0DO`Ub1$EMqy2>uIFn+PE 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�J%qI|u*?|wZA=+~21{}psGrVDjDy~!87HHKel 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

(@7ItBt!K!#z5SnF)J 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≧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 %hHQV4GnI-`id6WQ}ei{a&pYvRU=C*whbc) zh$$z>RGnnXUD-Rg*ioggE;Ty3{;Dsx=qLm(g<%pw#_-b4&Rs!`J*pQI2Ci>NgsPnS zd6ywK`ut)?@iJ4Vqt`BI(NWKBLdFrDTcy;|+*Kpvt8NQ9fnwK`8@+?XztGXkiyg&l zW{r-n+IVY=jIR(Bm_YoK=acX_oss*=D@ zl<6Gp?Dlerp`*2~x~p%4Lw7;dp{wF19JYQEmNRhYt{S%&-Bu+|pghB&t2(;sUR>&^ zez2{vN7pa9r^Pu6Tc{w_xDPwSQNcw{c#%qGyKxWXS0h*8*4U$ZF%UiLn=VFf{f@%J z)fJ_V>LfSsbw{>lLIS#IY%Bdmdd}LrT2{ zh)YlW@-gEk^`-3H)Z6n>4Q^b5FD`YYj8?QdIr3C(C3&(aX$YFHa(PLe=TE(cAP!9u zbn;ZTsW&N0Q1dVd-PRIh$>>b|)N$axIdgp$B3|P#fXN9FJPjG{1#SnAF>oftAC+KP zIvh~rC|JE{VXK>7o?X!-fd?0rz;q_$LGU#sfHlDM2hWQQXF?}WIGcJS(qLYCHAr8@ zYiO|c%CFHy#dI~Gl!GP-bS!^hJ_@oh|5_3_QJBCz*C0VB&pw-a!-53qh(iqtZn|Y{ zt22R;DwZWkXDj$Y`4tV`MIi|yOc78uB+x5Ru@@?X1RXpT!L6mC-`#0kAX)3qySjJo zr_y+V6_uJRl%0AmVX}xOoTMt{e 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

  • 5|g(rjs%&3ArAfI7ZY#4_l z_z5r=1WCp2f6!@9JRd%#1r_`O*}AgNPAjh4>(16=L*?#%C_wZ8LB;NVTzB{V2=;@Y zP@cleK899o|Azvwd>Fv4@`~;M`De5W9t9}i!Gc7ikyP*lz@l3iCQ;;i75o7Cx?cr9 zK)xte!4Cih(j_A{u4J2l+by^zoRIB*N?m}a+H7o#8cATh2%IpEy^8Jso?j2(TM{h1 zS8V_HygIDEdT!icd)24#>OM@}V=t`W2k_i_((qt$Kdj&ffC5ef{={JgKY-`d;k!6| z{f#U50iXa72!w)ZVMKY6Zc-0mDK>Jv3gQmv7eJB_#c_b0-KX(7+-boT%SR}AYc$M2p9wm0tNwtfI+|@U=T0}7zEA-foYvx z9c&BV%%)=QNq#2H?LvD8rrR(*jp+$Yk79ZV(*v09!E`sK^0zxNKZ5CYOrOJaD_rk% zb_(+{J&F0_m>$FQ2&RWIJ&5Tzru#7+!*m~}qnN@H1mgk+S{K;-uX`VV;zP4`%Xonu zo%SpCIIIGkf%*SSFz-JA{DV*1JNP&GBm6#or~P9-z;EWC;n#7Of0WPRmi>J`#eUm< zLmbomF$fq03<3rLgMdN6AYc$M2p9wm0tNwt!1*9Bt8-3AZ{(!^0|JaZ$M$006V#Gy zo5=SgqZ2zJ@{%ip9gt-Ng9_VL37CkP}nC(v(J@Do4*!CNVI)sHKX1b)+uy0L=b+yYgXc zepo?Z0K|blFr!A$AV<|l2~8dp8Z?HFCb7ce+&W!0fT@+z#w1{ zFbEg~3<3rLgMdNcLLwk&1yG48%iJyb1xOtd`31;8egQI&Uw{nc7a#-q1;{{t0Wy$Z zfDGgpAOraY$UuGpGLT<@4CEIe1NjBWKz;!-kY9idJtmtdG~u z@?Y}jVgJB4_$J^Qn9r}`Q|&YMi}o)2ajRx;wr{f++Vkug)|=K#)~NMu>jCS_R^Nqe zH|E#|0fT@+z#w1{FbEg~3<3rLgMdL`G6YDkT?Co;tZZei+;GqOO*BW^CQHg7^pu#5 zddpU zSGty?ZzVAqV zxKp5TzU|}_7h3R%b%D#^@8z^EF#hMC|G?OP{_G!G({BJmLXTPR)!v!)>zQY}-kiFy zbACtnl#qGT`evND_S;Ybez5te9D@a2tU1sR7-*>>uUQAG?S1K>TdGYi zyi#&OKvLqmfv*xkO@qcX5Qys#NaF;aU)KKgJbeV96IaNELQehCBd0MWr<@hz=JgG@X}RZ)mr zgIFnr9&{Gcrh$PtLl}ULkpcs!Eev{!7~sP~2ZQC%6P8rBkMCm9Az_62-V(!k)3C7*854zgIyvfyv#N~$XgowP5zu=H_t zfiElz4|T)h&B2yy9kW73@u38w zSwXB)ZI2<++=qvdMmxYWKwNs#C}ZFz`eQYyws%j&;P!r;xM;M4;b^c$JIJNl${5Hf zX$YFHazOy~YRd uf)%SbwCV{Ys#u0V?pA07<<}Y5h5#anutmVrfIytUi~Z13K+wia_WuGDe2BXM diff --git a/TestDataCouplerProfile/Program.cs b/TestDataCouplerProfile/Program.cs new file mode 100644 index 0000000..0857d7b --- /dev/null +++ b/TestDataCouplerProfile/Program.cs @@ -0,0 +1,56 @@ +using Microsoft.Extensions.DependencyInjection; +using CredentialManager; +using CredentialManager.Services; +using CredentialManager.Models; + +Console.WriteLine("🧪 Testing DataCouplerProfile Service..."); + +try +{ + // Crea un service provider con CredentialManager + var serviceProvider = await CredentialManagerFactory.CreateServiceProviderAsync(); + + // Ottieni il servizio per i profili + var profileService = serviceProvider.GetRequiredService(); + + Console.WriteLine("✅ Service created successfully!"); + + // Test: Ottieni tutti i profili (dovrebbe essere vuoto) + var profiles = await profileService.GetAllProfilesAsync(); + Console.WriteLine($"📋 Found {profiles.Count()} existing profiles"); + + // Test: Crea un profilo di test + var testProfile = new DataCouplerProfile + { + Name = "Test Profile", + Description = "Profile creato durante il test", + SourceType = "database", + DestinationType = "rest", + SourceSchema = "dbo", + SourceTable = "customers", + DestinationEndpoint = "/api/customers", + CreatedBy = "System Test" + }; + + // Salva il profilo + var savedProfile = await profileService.SaveProfileAsync(testProfile); + Console.WriteLine($"💾 Test profile saved with ID: {savedProfile.Id}"); + + // Ricarica i profili + profiles = await profileService.GetAllProfilesAsync(); + Console.WriteLine($"📋 Now found {profiles.Count()} profiles"); + + // Elimina il profilo di test + var deleted = await profileService.DeleteProfileAsync(savedProfile.Id); + Console.WriteLine($"🗑️ Test profile deleted: {deleted}"); + + Console.WriteLine("✅ All tests passed! DataCouplerProfile service is working correctly."); +} +catch (Exception ex) +{ + Console.WriteLine($"❌ Error during testing: {ex.Message}"); + Console.WriteLine($"Stack trace: {ex.StackTrace}"); +} + +Console.WriteLine("Press any key to exit..."); +Console.ReadKey(); diff --git a/TestDatabaseFix/TestDatabaseFix.csproj b/TestDataCouplerProfile/TestDataCouplerProfile.csproj similarity index 51% rename from TestDatabaseFix/TestDatabaseFix.csproj rename to TestDataCouplerProfile/TestDataCouplerProfile.csproj index 0933c15..1f690d8 100644 --- a/TestDatabaseFix/TestDatabaseFix.csproj +++ b/TestDataCouplerProfile/TestDataCouplerProfile.csproj @@ -3,6 +3,7 @@ Exe net9.0 + enable enable @@ -10,10 +11,4 @@ - - - - - - diff --git a/TestDatabaseFix/Program.cs b/TestDatabaseFix/Program.cs deleted file mode 100644 index 94b7e36..0000000 --- a/TestDatabaseFix/Program.cs +++ /dev/null @@ -1,50 +0,0 @@ -using CredentialManager.Data; -using CredentialManager.Services; -using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; - -namespace TestDatabaseFix; - -class Program -{ - static async Task Main(string[] args) - { - Console.WriteLine("Test Database Initialization Fix"); - - var services = new ServiceCollection(); - services.AddLogging(builder => builder.AddConsole()); - - // Configura il DbContext per usare SQLite - services.AddDbContext(options => - options.UseSqlite("Data Source=test_credentials.db")); - - services.AddScoped(); - - var serviceProvider = services.BuildServiceProvider(); - - using var scope = serviceProvider.CreateScope(); - var dbContext = scope.ServiceProvider.GetRequiredService(); - var initializer = scope.ServiceProvider.GetRequiredService(); - - try - { - Console.WriteLine("Inizializzando il database..."); - await initializer.InitializeAsync(); - - Console.WriteLine("Verifica tabelle..."); - var credentialsCount = await dbContext.Credentials.CountAsync(); - var associationsCount = await dbContext.RecordAssociations.CountAsync(); - - Console.WriteLine($"Tabella Credentials: {credentialsCount} record"); - Console.WriteLine($"Tabella RecordAssociations: {associationsCount} record"); - - Console.WriteLine("Test completato con successo!"); - } - catch (Exception ex) - { - Console.WriteLine($"Errore: {ex.Message}"); - Console.WriteLine($"Stack trace: {ex.StackTrace}"); - } - } -}