43 lines
1.3 KiB
C#
43 lines
1.3 KiB
C#
|
|
|
|
using CMSMicroservice.Protobuf.Protos.Commission;
|
|
|
|
namespace BackOffice.BFF.Application.CommissionCQ.Queries.GetWithdrawalRequests;
|
|
|
|
public class GetWithdrawalRequestsQueryHandler : IRequestHandler<GetWithdrawalRequestsQuery, GetWithdrawalRequestsResponseDto>
|
|
{
|
|
private readonly IApplicationContractContext _context;
|
|
|
|
public GetWithdrawalRequestsQueryHandler(IApplicationContractContext context)
|
|
{
|
|
_context = context;
|
|
}
|
|
|
|
public async Task<GetWithdrawalRequestsResponseDto> Handle(GetWithdrawalRequestsQuery request, CancellationToken cancellationToken)
|
|
{
|
|
var grpcRequest = new GetWithdrawalRequestsRequest
|
|
{
|
|
PageIndex = request.PageIndex,
|
|
PageSize = request.PageSize
|
|
};
|
|
|
|
if (request.Status.HasValue)
|
|
{
|
|
grpcRequest.Status = request.Status.Value;
|
|
}
|
|
|
|
if (request.UserId.HasValue)
|
|
{
|
|
grpcRequest.UserId = request.UserId.Value;
|
|
}
|
|
|
|
if (!string.IsNullOrWhiteSpace(request.IbanNumber))
|
|
{
|
|
grpcRequest.IbanNumber = request.IbanNumber;
|
|
}
|
|
|
|
var response = await _context.Commissions.GetWithdrawalRequestsAsync(grpcRequest, cancellationToken: cancellationToken);
|
|
return response.Adapt<GetWithdrawalRequestsResponseDto>();
|
|
}
|
|
}
|