using CMSMicroservice.Protobuf.Protos.Commission; namespace BackOffice.BFF.Application.CommissionCQ.Queries.GetUserWeeklyBalances; public class GetUserWeeklyBalancesQueryHandler : IRequestHandler { private readonly IApplicationContractContext _context; public GetUserWeeklyBalancesQueryHandler(IApplicationContractContext context) { _context = context; } public async Task 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(); } }