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