using Microsoft.EntityFrameworkCore; using UserManagement.Domain.Entities; using UserManagement.Infrastructure.Interfaces; namespace UserManagement.Infrastructure.Repositories { public class RoleRepository : IRoleRepository { // CTOR private readonly ApplicationDbContext _context; public RoleRepository(ApplicationDbContext context) { _context = context; } // CREATE public async Task AddAsync(Role role) { await _context.Roles.AddAsync(role); await _context.SaveChangesAsync(); return role; } // READ ALL public async Task> GetAllAsync() { return await _context.Roles.ToListAsync(); } // READ BY ID public async Task GetByIdAsync(int id) { return await _context.Roles.FindAsync(id); } // READ BY NAME public async Task GetByNameAsync(string name) { return await _context.Roles.FirstOrDefaultAsync(n => n.Name == name); } // UPDATE public async Task UpdateAsync(Role role) { _context.Entry(role).State = EntityState.Modified; var results = await _context.SaveChangesAsync(); return results > 0; } // DELETE public async Task DeleteAsync(Role role) { _context.Roles.Remove(role); var result = await _context.SaveChangesAsync(); return result > 0; } } }