40 lines
1.4 KiB
C#
40 lines
1.4 KiB
C#
|
|
|
|
using CMSMicroservice.Protobuf.Protos.Commission;
|
|
|
|
namespace BackOffice.BFF.Application.CommissionCQ.Queries.GetUserWeeklyBalances;
|
|
|
|
public class GetUserWeeklyBalancesQueryHandler : IRequestHandler<GetUserWeeklyBalancesQuery, GetUserWeeklyBalancesResponseDto>
|
|
{
|
|
private readonly IApplicationContractContext _context;
|
|
|
|
public GetUserWeeklyBalancesQueryHandler(IApplicationContractContext context)
|
|
{
|
|
_context = context;
|
|
}
|
|
|
|
public async Task<GetUserWeeklyBalancesResponseDto> Handle(GetUserWeeklyBalancesQuery request, CancellationToken cancellationToken)
|
|
{
|
|
var grpcRequest = new GetUserWeeklyBalancesRequest
|
|
{
|
|
OnlyActive = request.Filter?.OnlyActive ?? false,
|
|
PageIndex = request.PaginationState?.PageNumber ?? 1,
|
|
PageSize = request.PaginationState?.PageSize ?? 10
|
|
};
|
|
|
|
if (request.Filter?.UserId.HasValue == true && request.Filter.UserId.Value > 0)
|
|
{
|
|
grpcRequest.UserId = request.Filter.UserId.Value;
|
|
}
|
|
|
|
if (request.Filter?.WeekDefinitionId.HasValue == true && request.Filter.WeekDefinitionId.Value > 0)
|
|
{
|
|
grpcRequest.WeekDefinitionId = request.Filter.WeekDefinitionId.Value;
|
|
}
|
|
|
|
var response = await _context.Commissions.GetUserWeeklyBalancesAsync(grpcRequest, cancellationToken: cancellationToken);
|
|
|
|
return response.Adapt<GetUserWeeklyBalancesResponseDto>();
|
|
}
|
|
}
|