using CredentialManager.Models; using CredentialManager.Services; namespace DataConnection.CredentialManagement.Interfaces; /// /// Interfaccia per la gestione delle credenziali integrate con DataConnection /// public interface IDataConnectionCredentialService { // Database credentials Task GetDatabaseCredentialAsync(string name); Task GetDatabaseCredentialAsync(int id); Task> GetAllDatabaseCredentialsAsync(); Task SaveDatabaseCredentialAsync(DatabaseCredential credential); Task DeleteDatabaseCredentialAsync(int id); Task DeleteDatabaseCredentialAsync(string name); // REST API credentials Task GetRestApiCredentialAsync(string name); Task GetRestApiCredentialAsync(int id); Task> GetAllRestApiCredentialsAsync(); Task SaveRestApiCredentialAsync(RestApiCredential credential); Task DeleteRestApiCredentialAsync(int id); Task DeleteRestApiCredentialAsync(string name); // SAP B1 Service Layer credentials Task GetSapB1CredentialAsync(string name); Task GetSapB1CredentialAsync(int id); Task> GetAllSapB1CredentialsAsync(); Task SaveSapB1CredentialAsync(SapB1ServiceLayerCredential credential); Task DeleteSapB1CredentialAsync(int id); Task DeleteSapB1CredentialAsync(string name); // Salesforce credentials Task GetSalesforceCredentialAsync(string name); Task GetSalesforceCredentialAsync(int id); Task> GetAllSalesforceCredentialsAsync(); Task SaveSalesforceCredentialAsync(SalesforceCredential credential); Task DeleteSalesforceCredentialAsync(int id); Task DeleteSalesforceCredentialAsync(string name); // DataConnection specific operations Task GetConnectionStringAsync(string credentialName); Task GetConnectionStringAsync(int credentialId); Task GetDbManagerOptionsAsync(string credentialName); Task GetDbManagerOptionsAsync(int credentialId); Task GetRestServiceOptionsAsync(string credentialName); Task GetRestServiceOptionsAsync(int credentialId); // Helper methods Task GetCredentialIdByNameAsync(string name, CredentialManager.Models.CredentialType type); // 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); // Key associations Task SaveKeyAssociationAsync(KeyAssociation association); Task FindKeyAssociationByValueAsync(string keyValue, string destinationEntity, string restCredentialName); Task FindKeyAssociationByValueAsync(string keyValue); Task> GetKeyAssociationsByDestinationAsync(string destinationEntity, string restCredentialName); Task> GetAllActiveKeyAssociationsAsync(); Task> GetAllKeyAssociationsAsync(); Task UpdateKeyAssociationAsync(KeyAssociation association); Task DeactivateKeyAssociationAsync(int id); Task DeleteKeyAssociationAsync(int id); Task ClearKeyAssociationsAsync(string destinationEntity, string restCredentialName); Task ClearAllKeyAssociationsAsync(); Task> GetInvalidKeyAssociationsAsync(string destinationEntity, string restCredentialName); Task CleanupInvalidKeyAssociationsAsync(string destinationEntity, string restCredentialName); Task UpdateKeyAssociationLastVerifiedAsync(int id); Task GetKeyAssociationStatisticsAsync(); }