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 } }