using BlackRock.Reporting.API.Core.Interfaces; using BlackRock.Reporting.API.Core.Models; using Microsoft.EntityFrameworkCore; namespace BlackRock.Reporting.API.Persistence.Repositories { public class EFRepository : IRepository where TEntity : class, IBaseEntity { private readonly BRDbContext context; public EFRepository(BRDbContext context) { this.context = context; } public async Task> GetAllAsync() { return await context.Set().ToListAsync(); } public async Task GetByIdAsync(int id) { return await context.Set() .FindAsync(id); } public async Task AddAsync(TEntity entity) { await context.Set().AddAsync(entity); } public void Update(TEntity entity) { context.Set().Update(entity); } public void UpdateRange(IEnumerable entities) { context.Set().UpdateRange(entities); } public async Task AddRangeAsync(IEnumerable entities) { await context.Set().AddRangeAsync(entities); } public void Remove(TEntity entity) { context.Set().Remove(entity); } public void RemoveRange(IEnumerable entities) { context.Set().RemoveRange(entities); } } }