Files
Data-Coupler/CredentialManager/Services/IRecordAssociationService.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

80 lines
2.7 KiB
C#

using CredentialManager.Models;
namespace CredentialManager.Services;
/// <summary>
/// Interfaccia per il servizio di gestione delle associazioni record
/// </summary>
public interface IRecordAssociationService
{
/// <summary>
/// Salva una nuova associazione tra record sorgente e destinazione
/// </summary>
Task<int> SaveAssociationAsync(RecordAssociation association);
/// <summary>
/// Cerca un'associazione esistente tramite chiave sorgente
/// </summary>
Task<RecordAssociation?> FindAssociationAsync(string sourceName, string sourceKey, string destinationEntity);
/// <summary>
/// Ottiene tutte le associazioni per una sorgente specifica
/// </summary>
Task<List<RecordAssociation>> GetAssociationsBySourceAsync(string sourceName, string sourceType);
/// <summary>
/// Ottiene tutte le associazioni per un'entità di destinazione specifica
/// </summary>
Task<List<RecordAssociation>> GetAssociationsByDestinationAsync(string destinationEntity, string restCredentialName);
/// <summary>
/// Ottiene tutte le associazioni attive
/// </summary>
Task<List<RecordAssociation>> GetAllActiveAssociationsAsync();
/// <summary>
/// Aggiorna un'associazione esistente
/// </summary>
Task<bool> UpdateAssociationAsync(RecordAssociation association);
/// <summary>
/// Disattiva un'associazione (soft delete)
/// </summary>
Task<bool> DeactivateAssociationAsync(int id);
/// <summary>
/// Elimina definitivamente un'associazione
/// </summary>
Task<bool> DeleteAssociationAsync(int id);
/// <summary>
/// Pulisce le associazioni obsolete (opzionale)
/// </summary>
Task<int> CleanupOldAssociationsAsync(TimeSpan olderThan);
/// <summary>
/// Elimina tutte le associazioni per una specifica combinazione sorgente-destinazione
/// </summary>
Task<int> ClearAssociationsAsync(string sourceName, string destinationEntity, string restCredentialName);
/// <summary>
/// Elimina tutte le associazioni nel sistema
/// </summary>
Task<int> ClearAllAssociationsAsync();
/// <summary>
/// Verifica se un ID di destinazione esiste ancora nel sistema target
/// </summary>
Task<bool> ValidateDestinationIdAsync(string destinationId, string destinationEntity, string restCredentialName);
/// <summary>
/// Ottiene tutte le associazioni con ID di destinazione non validi
/// </summary>
Task<List<RecordAssociation>> GetInvalidAssociationsAsync(string destinationEntity, string restCredentialName);
/// <summary>
/// Pulisce le associazioni con ID di destinazione non più validi
/// </summary>
Task<int> CleanupInvalidAssociationsAsync(string destinationEntity, string restCredentialName);
}