Files
Data-Coupler/DataConnection/CredentialManagement/Interfaces/IDataConnectionCredentialService.cs
T
Alessio 34b47a2bd4 feat: Implementa sistema completo di gestione associazioni record
- Aggiunge modello RecordAssociation con migrazione database
- Implementa servizio CRUD completo per gestione associazioni
- Crea interfaccia utente avanzata per visualizzazione e gestione
- Aggiunge funzionalità di filtro, paginazione e ricerca
- Implementa azioni di massa (eliminazione, validazione, pulizia)
- Aggiunge esportazione CSV delle associazioni
- Integra validazione automatica degli ID destinazione
- Implementa logica upsert robusta con controllo validità associazioni
- Aggiunge selezione manuale chiavi per sorgenti non-database
- Migliora UI con statistiche, modali di conferma e feedback operazioni
- Refactoring completo logica trasferimento dati per utilizzare associazioni
2025-06-28 02:22:46 +02:00

74 lines
4.4 KiB
C#

using CredentialManager.Models;
namespace DataConnection.CredentialManagement.Interfaces;
/// <summary>
/// Interfaccia per la gestione delle credenziali integrate con DataConnection
/// </summary>
public interface IDataConnectionCredentialService
{
// Database credentials
Task<DatabaseCredential?> GetDatabaseCredentialAsync(string name);
Task<DatabaseCredential?> GetDatabaseCredentialAsync(int id);
Task<List<DatabaseCredential>> GetAllDatabaseCredentialsAsync();
Task<int> SaveDatabaseCredentialAsync(DatabaseCredential credential);
Task<bool> DeleteDatabaseCredentialAsync(int id);
Task<bool> DeleteDatabaseCredentialAsync(string name);
// REST API credentials
Task<RestApiCredential?> GetRestApiCredentialAsync(string name);
Task<RestApiCredential?> GetRestApiCredentialAsync(int id);
Task<List<RestApiCredential>> GetAllRestApiCredentialsAsync();
Task<int> SaveRestApiCredentialAsync(RestApiCredential credential);
Task<bool> DeleteRestApiCredentialAsync(int id);
Task<bool> DeleteRestApiCredentialAsync(string name);
// SAP B1 Service Layer credentials
Task<SapB1ServiceLayerCredential?> GetSapB1CredentialAsync(string name);
Task<SapB1ServiceLayerCredential?> GetSapB1CredentialAsync(int id);
Task<List<SapB1ServiceLayerCredential>> GetAllSapB1CredentialsAsync();
Task<int> SaveSapB1CredentialAsync(SapB1ServiceLayerCredential credential);
Task<bool> DeleteSapB1CredentialAsync(int id);
Task<bool> DeleteSapB1CredentialAsync(string name);
// Salesforce credentials
Task<SalesforceCredential?> GetSalesforceCredentialAsync(string name);
Task<SalesforceCredential?> GetSalesforceCredentialAsync(int id);
Task<List<SalesforceCredential>> GetAllSalesforceCredentialsAsync();
Task<int> SaveSalesforceCredentialAsync(SalesforceCredential credential);
Task<bool> DeleteSalesforceCredentialAsync(int id);
Task<bool> DeleteSalesforceCredentialAsync(string name);
// DataConnection specific operations
Task<string> GetConnectionStringAsync(string credentialName);
Task<string> GetConnectionStringAsync(int credentialId);
Task<DataConnection.EF.DbManagerOptions> GetDbManagerOptionsAsync(string credentialName);
Task<DataConnection.EF.DbManagerOptions> GetDbManagerOptionsAsync(int credentialId);
Task<DataConnection.REST.Configuration.RestServiceOptions> GetRestServiceOptionsAsync(string credentialName);
Task<DataConnection.REST.Configuration.RestServiceOptions> GetRestServiceOptionsAsync(int credentialId);
// Connection testing
Task<(bool Success, string Message)> TestDatabaseConnectionAsync(string credentialName);
Task<(bool Success, string Message)> TestDatabaseConnectionAsync(DatabaseCredential credential);
Task<(bool Success, string Message)> TestRestApiConnectionAsync(string credentialName);
Task<(bool Success, string Message)> TestRestApiConnectionAsync(RestApiCredential credential);
Task<(bool Success, string Message)> TestSapB1ConnectionAsync(string credentialName);
Task<(bool Success, string Message)> TestSapB1ConnectionAsync(SapB1ServiceLayerCredential credential);
Task<(bool Success, string Message)> TestSalesforceConnectionAsync(string credentialName);
Task<(bool Success, string Message)> TestSalesforceConnectionAsync(SalesforceCredential credential);
// Record associations
Task<int> SaveRecordAssociationAsync(RecordAssociation association);
Task<RecordAssociation?> FindRecordAssociationAsync(string sourceName, string sourceKey, string destinationEntity);
Task<List<RecordAssociation>> GetRecordAssociationsBySourceAsync(string sourceName, string sourceType);
Task<List<RecordAssociation>> GetRecordAssociationsByDestinationAsync(string destinationEntity, string restCredentialName);
Task<List<RecordAssociation>> GetAllActiveRecordAssociationsAsync();
Task<bool> UpdateRecordAssociationAsync(RecordAssociation association);
Task<bool> DeactivateRecordAssociationAsync(int id);
Task<bool> DeleteRecordAssociationAsync(int id);
Task<int> ClearRecordAssociationsAsync(string sourceName, string destinationEntity, string restCredentialName);
Task<int> ClearAllRecordAssociationsAsync();
Task<List<RecordAssociation>> GetInvalidRecordAssociationsAsync(string destinationEntity, string restCredentialName);
Task<int> CleanupInvalidRecordAssociationsAsync(string destinationEntity, string restCredentialName);
}