namespace Csr.Infrastructure.Persistence.Repositories; using CSR.Domain.Entities; using CSR.Application.Interfaces; using Microsoft.EntityFrameworkCore; public class RoleRepository(CSR.Infrastructure.Persistence.CSRDbContext context) : IRoleRepository { private readonly CSR.Infrastructure.Persistence.CSRDbContext _context = context; public async Task GetByIdAsync(int id) { var roleEntity = await _context.Roles .Include(r => r.Id) .SingleOrDefaultAsync(r => r.Id == id); if (roleEntity == null) { return null; // No entity found, return null domain model } var role = Role.LoadExisting( roleEntity.Id, roleEntity.Name ); return role; } public async Task AddAsync(Role role) { var roleEntity = new CSR.Infrastructure.Persistence.Role { Name = role.Name }; _context.Roles.Add(roleEntity); await _context.SaveChangesAsync(); } public async Task DeleteAsync(int id) { var roleEntity = new CSR.Infrastructure.Persistence.Role { Id = id, Name = string.Empty }; _context.Roles.Remove(roleEntity); await _context.SaveChangesAsync(); } }