Files
lux/EgwCoreLib.Lux.Data/Repository/Utils/IGenClassRepository.cs
T
2026-03-25 17:25:00 +01:00

49 lines
2.0 KiB
C#

namespace EgwCoreLib.Lux.Data.Repository.Utils
{
/// <summary>
/// Interfaccia per la gestione delle classi generiche.
/// </summary>
public interface IGenClassRepository : IBaseRepository
{
/// <summary>
/// Inserisce una nuova classe generica nel database.
/// </summary>
/// <param name="entity">La classe da inserire.</param>
/// <returns>True se l'inserimento ha successo, false altrimenti.</returns>
Task<bool> AddAsync(GenClassModel entity);
/// <summary>
/// Conta i valori associati a una classe generica.
/// </summary>
/// <param name="classCod">Il codice della classe.</param>
/// <returns>Il numero di valori associati alla classe.</returns>
Task<int> CountChildrenAsync(string classCod);
/// <summary>
/// Elimina una classe generica dal database.
/// </summary>
/// <param name="entity">La classe da eliminare.</param>
/// <returns>True se l'eliminazione ha successo, false altrimenti.</returns>
Task<bool> DeleteAsync(GenClassModel entity);
/// <summary>
/// Recupera l'elenco di tutte le classi generiche con i valori associati.
/// </summary>
/// <returns>L'elenco di tutte le classi generiche.</returns>
Task<List<GenClassModel>> GetAllAsync();
/// <summary>
/// Recupera una classe generica per il suo codice.
/// </summary>
/// <param name="code">Il codice della classe.</param>
/// <returns>La classe corrispondente, o null se non esiste.</returns>
Task<GenClassModel?> GetByCodeAsync(string code);
/// <summary>
/// Aggiorna una classe generica esistente nel database.
/// </summary>
/// <param name="entity">La classe aggiornata.</param>
/// <returns>True se l'aggiornamento ha successo, false altrimenti.</returns>
Task<bool> UpdateAsync(GenClassModel entity);
}
}