Files
lux/EgwCoreLib.Lux.Data/Repository/Admin/IVocabolarioRepository.cs
T
2026-06-04 11:42:35 +02:00

86 lines
3.0 KiB
C#

namespace EgwCoreLib.Lux.Data.Repository.Admin
{
public interface IVocabolarioRepository
{
#region Public Methods
/// <summary>
/// Inserisce un nuovo record Vocabolario nel database.
/// </summary>
/// <param name="entity">Record da inserire</param>
Task<bool> AddAsync(VocabolarioModel entity);
/// <summary>
/// Clona un vocabolario data lingua origine/destinazione
/// </summary>
/// <param name="linguaOrig"></param>
/// <param name="linguaDest"></param>
/// <returns></returns>
Task<bool> CloneAsync(string linguaOrig, string linguaDest);
/// <summary>
/// Elimina un record Vocabolario dal database.
/// </summary>
/// <param name="entity">Record da eliminare</param>
Task<bool> DeleteAsync(VocabolarioModel entity);
/// <summary>
/// Recupero l'intero Vocabolario di tutte le lingue x successivo grouping
/// </summary>
/// <returns></returns>
Task<List<VocabolarioModel>> GetAllAsync();
/// <summary>
/// Recupera una riga Vocabolario specifico data key lingua/lemma
/// </summary>
/// <param name="lingua"></param>
/// <param name="lemma"></param>
/// <returns></returns>
Task<VocabolarioModel?> GetByIdAsync(string lingua, string lemma);
/// <summary>
/// Recupero un dizionario intero data una lingua
/// </summary>
/// <param name="lingua"></param>
/// <returns></returns>
Task<List<VocabolarioModel>> GetByLang(string lingua);
/// <summary>
/// Recupero elenco lingue
/// </summary>
/// <returns></returns>
Task<List<LinguaModel>> ListLingueAsync();
/// <summary>
/// Recupera un dizionario lemma->traduzione per una data lingua (sync, via CreateDbContext).
/// Usato per caricamenti sincroni da FusionCache factory.
/// </summary>
Dictionary<string, string> GetDizionarioLinguaSync(string lingua);
/// <summary>
/// Recupera un dizionario lemma->traduzione per una data lingua (async).
/// </summary>
Task<Dictionary<string, string>> GetDizionarioLinguaAsync(string lingua);
/// <summary>
/// Inserisce un record Vocabolario usando DbContext sincrono.
/// Usato per autogrowth del dizionario in Traduci().
/// </summary>
bool InsertSync(VocabolarioModel entity);
/// <summary>
/// Aggiorna un record Vocabolario esistente nel database.
/// </summary>
/// <param name="entity">Record aggiornato</param>
Task<bool> UpdateAsync(VocabolarioModel entity);
/// <summary>
/// Upsert di una lista di record Vocabolario
/// </summary>
/// <param name="upsList"></param>
/// <returns></returns>
Task<bool> UpsertManyAsync(List<VocabolarioModel> upsList);
#endregion Public Methods
}
}