using Microsoft.EntityFrameworkCore; using EonaCat.gRPC.Core.Entities; using EonaCat.gRPC.Core.Interfaces.Repositories; using EonaCat.gRPC.Repository.DatabaseContext; using EonaCat.EFCore; namespace EonaCat.gRPC.Repository.Base; public class BaseRepository : EFRepository, IBaseRepository where T : BaseEntity { private readonly AppDbContext _dbContext; private readonly DbSet _dbSet; private readonly IQueryable _queryable; public BaseRepository(AppDbContext dbContext) : base(dbContext) { _dbContext = dbContext; _dbSet = _dbContext.Set(); _queryable = _dbContext.QuerySet().Where(x => !x!.IsDeleted); } public async Task SaveChangesAsync(bool acceptAllChangesOnSuccess) => await _dbContext.SaveChangesAsync(acceptAllChangesOnSuccess); public async Task SaveChangesAsync() => await _dbContext.SaveChangesAsync(); public void Save() => _dbContext.SaveChanges(); public async Task RollbackAsync() => await _dbContext.DisposeAsync(); public void Rollback() => _dbContext.Dispose(); }