namespace EgwCoreLib.Lux.Data.Repository.Utils { public class GenClassRepository : BaseRepository, IGenClassRepository { #region Public Constructors public GenClassRepository(IDbContextFactory ctxFactory) : base(ctxFactory) { } #endregion Public Constructors #region Public Methods /// public async Task AddAsync(GenClassModel entity) { await using var dbCtx = await CreateContextAsync(); await dbCtx.DbSetGenClass.AddAsync(entity); return await dbCtx.SaveChangesAsync() > 0; } /// public async Task DeleteAsync(GenClassModel entity) { // Add validation for null entity if (entity == null) return false; await using var dbCtx = await CreateContextAsync(); dbCtx.DbSetGenClass.Remove(entity); bool done = await dbCtx.SaveChangesAsync() > 0; return done; } /// public async Task CountChildrenAsync(string classCod) { await using var dbCtx = await CreateContextAsync(); return await dbCtx.DbSetGenVal.CountAsync(x => x.ClassCod == classCod); } /// public async Task> GetAllAsync() { await using var dbCtx = await CreateContextAsync(); return await dbCtx.DbSetGenClass .Include(o => o.GenValNav) .AsNoTracking() .ToListAsync(); } /// public async Task GetByCodeAsync(string code) { await using var dbCtx = await CreateContextAsync(); return await dbCtx.DbSetGenClass.FirstOrDefaultAsync(x => x.ClassCod == code); } /// public async Task UpdateAsync(GenClassModel entity) { await using var dbCtx = await CreateContextAsync(); // Recuperiamo l'entità tracciata dal context var trackedEntity = await dbCtx.DbSetGenClass.FirstOrDefaultAsync(x => x.ClassCod == entity.ClassCod); if (trackedEntity != null) { // Aggiorna i valori dell'entità tracciata con quelli della nuova dbCtx.Entry(trackedEntity).CurrentValues.SetValues(entity); } else { dbCtx.DbSetGenClass.Update(entity); } return await dbCtx.SaveChangesAsync() > 0; } #endregion Public Methods } }