Spaces:
Running
Running
File size: 1,431 Bytes
b9c7f0e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | using FlowAPI.Application.Interfaces;
using FlowAPI.Infrastructure.Data;
using Microsoft.EntityFrameworkCore;
namespace FlowAPI.Infrastructure.Repositories
{
public class GenericRepository<T> : IGenericRepository<T> where T : class
{
protected readonly AppDbContext _context;
protected readonly DbSet<T> _dbSet;
public GenericRepository(AppDbContext context)
{
_context = context;
_dbSet = context.Set<T>();
}
public virtual async Task<IEnumerable<T>> GetAllAsync()
{
return await _dbSet.AsNoTracking().ToListAsync();
}
public virtual async Task<T?> GetByIdAsync(Guid id)
{
return await _dbSet.FindAsync(id);
}
public virtual async Task<T> CreateAsync(T entity)
{
_dbSet.Add(entity);
await _context.SaveChangesAsync();
return entity;
}
public virtual async Task<T> UpdateAsync(T entity)
{
_dbSet.Update(entity);
await _context.SaveChangesAsync();
return entity;
}
public virtual async Task<bool> DeleteAsync(Guid id)
{
var entity = await _dbSet.FindAsync(id);
if (entity is null) return false;
_dbSet.Remove(entity);
await _context.SaveChangesAsync();
return true;
}
}
}
|