コード例 #1
0
        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 }
            });
        }