using FreeTubeSync.Database; using Microsoft.EntityFrameworkCore; namespace FreeTubeSync; public class Repository(DataContext dbContext) : IRepository where TEntity : class { public async Task AddAsync(TEntity entity, CancellationToken ct, bool sync = true) { dbContext.Set().Add(entity); if(sync) await dbContext.SaveChangesAsync(ct); } public async Task UpdateAsync(TEntity entity, CancellationToken ct, bool sync = true) { dbContext.Set().Update(entity); if (sync) await dbContext.SaveChangesAsync(ct); } public async Task DeleteAsync(TEntity entity, CancellationToken ct, bool sync = true) { dbContext.Set().Remove(entity); if (sync) await dbContext.SaveChangesAsync(ct); } public async Task GetByIdAsync(string id, CancellationToken ct) { return await dbContext.Set().FindAsync(id, ct); } public async Task> GetAllAsync(CancellationToken ct) { return await dbContext.Set().ToListAsync(ct); } }