public async Task <BatchData> Get([FromQuery(Name = "part")] int part, [FromQuery(Name = "total")] int total, [FromQuery(Name = "timestamp")] DateTime timestamp) { var request = new GetDataToProcessRequest { Part = part, TotalParts = total, Timestamp = timestamp.ToNullableTimestamp() }; var response = await batchesBranchClient.GetAsync(request, HttpContext.CreateHeadersWithFlowId()); var balances = response.Balances.Select(b => mapper.Map <BalanceDTO>(b)).ToArray(); var loans = response.Loans.Select(l => mapper.Map <LoanDTO>(l)).ToArray(); var payments = response.Payments.Select(p => mapper.Map <PaymentDTO>(p)).ToArray(); return(new BatchData { Balances = balances, Loans = loans, Payments = payments }); }
public override async Task <GetDataToProcessResponse> Get(GetDataToProcessRequest request, ServerCallContext context) { var paymentsAndLoansRequest = new GetPartRequest { Part = request.Part, TotalParts = request.TotalParts, Timestamp = request.Timestamp }; var paymentsAndLoans = await paymentsClient.GetPartAsync(paymentsAndLoansRequest, context.RequestHeaders.SelectCustom()); var paymentAccounts = paymentsAndLoans.Payments.Select(p => p.AccountId).Distinct(); var accountsRequest = new GetBalancesRequest { Ids = { paymentAccounts } }; var balances = await accountsClient.GetBalancesAsync(accountsRequest, context.RequestHeaders.SelectCustom()); return(new GetDataToProcessResponse { Payments = { paymentsAndLoans.Payments }, Loans = { paymentsAndLoans.Loans }, Balances = { balances.Balances } }); }