using Dpz.Core.Public.Entity.Auth;
using Dpz.Core.Service.Mediator.Features.Auth.Contracts;

namespace Dpz.Core.Service.Mediator.Features.Auth.Queries;

public class ListAuthApplicationsQueryHandler(IRepository<DpzApplication> repository)
    : IRequestHandler<ListAuthApplicationsQuery, List<AuthApplicationSummary>>
{
    public async ValueTask<List<AuthApplicationSummary>> Handle(
        ListAuthApplicationsQuery request,
        CancellationToken cancellationToken
    )
    {
        return await repository
            .SearchFor(x => true)
            .OrderBy(x => x.DisplayName)
            .Select(x => new AuthApplicationSummary
            {
                Id = x.Id.ToString(),
                ClientId = x.ClientId,
                DisplayName = x.DisplayName,
            })
            .ToListAsync(cancellationToken);
    }
}
评论加载中...