diff --git a/api/Repositories/IPersonRepository.cs b/api/Repositories/IPersonRepository.cs new file mode 100644 index 0000000..8639148 --- /dev/null +++ b/api/Repositories/IPersonRepository.cs @@ -0,0 +1,14 @@ + +using api.Domain; + +namespace api.Repositories +{ + public interface IPersonRepository + { + Task> GetAllAsync(); + Task GetByUsernameAsync(String username); + Task AddAsync(Person person); + Task UpdateAsync(Person person); + Task DeleteAsync(String username); + } +} diff --git a/api/Repositories/PersonRepository.cs b/api/Repositories/PersonRepository.cs new file mode 100644 index 0000000..1c30fb1 --- /dev/null +++ b/api/Repositories/PersonRepository.cs @@ -0,0 +1,44 @@ +using Microsoft.EntityFrameworkCore; +using api.Data; +using api.Domain; +using api.Repositories; + +public class PersonRepository(AppDbContext context) : IPersonRepository +{ + private readonly AppDbContext _context = context; + + public async Task> GetAllAsync() + { + return await _context.Persons.ToListAsync(); + } + + public async Task AddAsync(Person person) + { + await _context.Persons.AddAsync(person); + await _context.SaveChangesAsync(); + } + + public async Task GetByUsernameAsync(string username) + { + return await _context.Persons.FindAsync(username); + } + public async Task UpdateAsync(Person person) + { + _context.Persons.Update(person); + await _context.SaveChangesAsync(); + } + + public async Task DeleteAsync(string username) + { + Person person = await _context.Persons.FindAsync(username); + + if (person != null) + { + _context.Persons.Remove(person); + + await _context.SaveChangesAsync(); + } + } + + +} \ No newline at end of file