using Application.Common.Services.SecurityManager; using FluentValidation; using MediatR; namespace Application.Features.SecurityManager.Queries; public class GetUserRolesResult { public List? Data { get; init; } } public class GetUserRolesRequest : IRequest { public string? UserId { get; init; } } public class GetUserRolesValidator : AbstractValidator { public GetUserRolesValidator() { RuleFor(x => x.UserId).NotEmpty(); } } public class GetUserRolesHandler : IRequestHandler { private readonly ISecurityService _securityService; public GetUserRolesHandler(ISecurityService securityService) { _securityService = securityService; } public async Task Handle(GetUserRolesRequest request, CancellationToken cancellationToken) { var result = await _securityService.GetUserRolesAsync( request.UserId ?? "", cancellationToken ); return new GetUserRolesResult { Data = result }; } }