using CMSMicroservice.Protobuf.Protos.Commission; using CMSMicroservice.WebApi.Common.Services; using CMSMicroservice.Application.CommissionCQ.Commands.CalculateWeeklyBalances; using CMSMicroservice.Application.CommissionCQ.Commands.CalculateWeeklyCommissionPool; using CMSMicroservice.Application.CommissionCQ.Commands.ProcessUserPayouts; using CMSMicroservice.Application.CommissionCQ.Commands.RequestWithdrawal; using CMSMicroservice.Application.CommissionCQ.Commands.ProcessWithdrawal; using CMSMicroservice.Application.CommissionCQ.Queries.GetWeeklyCommissionPool; using CMSMicroservice.Application.CommissionCQ.Queries.GetUserCommissionPayouts; using CMSMicroservice.Application.CommissionCQ.Queries.GetCommissionPayoutHistory; using CMSMicroservice.Application.CommissionCQ.Queries.GetUserWeeklyBalances; namespace CMSMicroservice.WebApi.Services; public class CommissionService : CommissionContract.CommissionContractBase { private readonly IDispatchRequestToCQRS _dispatchRequestToCQRS; public CommissionService(IDispatchRequestToCQRS dispatchRequestToCQRS) { _dispatchRequestToCQRS = dispatchRequestToCQRS; } // Commands public override async Task CalculateWeeklyBalances(CalculateWeeklyBalancesRequest request, ServerCallContext context) { return await _dispatchRequestToCQRS.Handle(request, context); } public override async Task CalculateWeeklyCommissionPool(CalculateWeeklyCommissionPoolRequest request, ServerCallContext context) { return await _dispatchRequestToCQRS.Handle(request, context); } public override async Task ProcessUserPayouts(ProcessUserPayoutsRequest request, ServerCallContext context) { return await _dispatchRequestToCQRS.Handle(request, context); } public override async Task RequestWithdrawal(RequestWithdrawalRequest request, ServerCallContext context) { return await _dispatchRequestToCQRS.Handle(request, context); } public override async Task ProcessWithdrawal(ProcessWithdrawalRequest request, ServerCallContext context) { return await _dispatchRequestToCQRS.Handle(request, context); } // Queries public override async Task GetWeeklyCommissionPool(GetWeeklyCommissionPoolRequest request, ServerCallContext context) { return await _dispatchRequestToCQRS.Handle(request, context); } public override async Task GetUserCommissionPayouts(GetUserCommissionPayoutsRequest request, ServerCallContext context) { return await _dispatchRequestToCQRS.Handle(request, context); } public override async Task GetCommissionPayoutHistory(GetCommissionPayoutHistoryRequest request, ServerCallContext context) { return await _dispatchRequestToCQRS.Handle(request, context); } public override async Task GetUserWeeklyBalances(GetUserWeeklyBalancesRequest request, ServerCallContext context) { return await _dispatchRequestToCQRS.Handle(request, context); } }