namespace EgwCoreLib.Lux.Data.Repository.Sales { public class DealerRepository : BaseRepository, IDealerRepository { #region Public Constructors public DealerRepository(IDbContextFactory ctxFactory) : base(ctxFactory) { } #endregion Public Constructors #region Public Methods /// public async Task AddAsync(DealerModel entity) { await using var dbCtx = await CreateContextAsync(); await dbCtx.DbSetDealer.AddAsync(entity); return await dbCtx.SaveChangesAsync() > 0; } /// public async Task CountChildrenAsync(int DealerID) { await using var dbCtx = await CreateContextAsync(); return await dbCtx.DbSetOffer.CountAsync(x => x.DealerID == DealerID); } /// public async Task DeleteAsync(DealerModel entity) { await using var dbCtx = await CreateContextAsync(); dbCtx.DbSetDealer.Remove(entity); return await dbCtx.SaveChangesAsync() > 0; } /// public async Task> GetAllAsync() { await using var dbCtx = await CreateContextAsync(); return await dbCtx.DbSetDealer .AsNoTracking() .Include(o => o.OfferNav) .Include(o => o.OrderNav) .ToListAsync(); } /// public async Task GetByIdAsync(int DealerID) { await using var dbCtx = await CreateContextAsync(); return await dbCtx.DbSetDealer .Where(x => x.DealerID == DealerID) .Include(o => o.OfferNav) .Include(o => o.OrderNav) .FirstOrDefaultAsync(); } /// public async Task UpdateAsync(DealerModel entity) { await using var dbCtx = await CreateContextAsync(); // Recuperiamo l'entità tracciata dal context var trackedEntity = await dbCtx.DbSetDealer.FirstOrDefaultAsync(x => x.DealerID == entity.DealerID); if (trackedEntity != null) { // Aggiorna i valori dell'entità tracciata con quelli della nuova dbCtx.Entry(trackedEntity).CurrentValues.SetValues(entity); } else { dbCtx.DbSetDealer.Update(entity); } return await dbCtx.SaveChangesAsync() > 0; } #endregion Public Methods } }