using Imprink.Domain.Entities; using Imprink.Domain.Repositories; using Imprink.Infrastructure.Database; using Microsoft.EntityFrameworkCore; namespace Imprink.Infrastructure.Repositories; public class RoleRepository(ApplicationDbContext context) : IRoleRepository { public async Task> GetAllRolesAsync(CancellationToken cancellationToken = default) { return await context.Roles .AsNoTracking() .ToListAsync(cancellationToken); } public async Task GetRoleByIdAsync(Guid roleId, CancellationToken cancellationToken = default) { return await context.Roles .AsNoTracking() .FirstOrDefaultAsync(r => r.Id == roleId, cancellationToken); } public async Task GetRoleByNameAsync(string roleName, CancellationToken cancellationToken = default) { return await context.Roles .AsNoTracking() .FirstOrDefaultAsync(r => r.RoleName == roleName, cancellationToken); } public async Task RoleExistsAsync(Guid roleId, CancellationToken cancellationToken = default) { return await context.Roles .AnyAsync(r => r.Id == roleId, cancellationToken); } }