using MediatR; using BuildFlow.Application.Roles.DTOs; using BuildFlow.Infrastructure.Persistence; using BuildFlow.Application.Roles.Queries; namespace BuildFlow.Application.Roles.Handlers; /// /// Get角色List查询处理器。执行业务校验后持久化。 /// public class GetRoleListQueryHandler(RagDbContext db) : IRequestHandler> { public async Task> Handle(GetRoleListQuery request, CancellationToken ct) { return await db.Roles .Include(r => r.RolePermissions).ThenInclude(rp => rp.Permission) .Select(r => new RoleDto( r.Id, r.Name, r.Description, r.CreatedAt, r.RolePermissions.Select(rp => rp.Permission.Code).ToList())) .ToListAsync(ct); } }