示例#1
0
 public override Task <Empty> Cancel(CancelPaymentsRequest request, ServerCallContext context)
 {
     foreach (var id in request.Ids)
     {
         paymentsRepository.Cancel(id);
     }
     return(Task.FromResult(new Empty()));
 }
示例#2
0
        public override async Task <Empty> BatchRepayInstalments(BatchRepayInstalmentsRequest request, ServerCallContext context)
        {
            var paymentsToFinish = RepayInstalments(request);

            if (paymentsToFinish.Any())
            {
                var cancelPaymentsRequest = new CancelPaymentsRequest {
                    Ids = { paymentsToFinish }
                };
                await paymentsClient.CancelAsync(cancelPaymentsRequest, context.RequestHeaders.SelectCustom());
            }
            return(new Empty());
        }
示例#3
0
        public override Task <Empty> Cancel(CancelPaymentsRequest request, ServerCallContext context)
        {
            foreach (var id in request.Ids)
            {
                paymentsRepository.Cancel(id);
            }
            var cancelledPayments = request.Ids.Select(id => paymentsRepository.Get(id)).ToArray();

            if (cancelledPayments.Length > 0)
            {
                projectionChannel.Publish(context.RequestHeaders.GetFlowId(), new DataProjection <Models.Payment, string> {
                    Upsert = cancelledPayments
                });
            }
            return(Task.FromResult(new Empty()));
        }
示例#4
0
        public override async Task <Empty> BatchRepayInstalments(BatchRepayInstalmentsRequest request, ServerCallContext context)
        {
            var paymentsToFinish = RepayInstalments(request);

            if (paymentsToFinish.Any())
            {
                var cancelPaymentsRequest = new CancelPaymentsRequest {
                    Ids = { paymentsToFinish }
                };
                await paymentsClient.CancelAsync(cancelPaymentsRequest, context.RequestHeaders.SelectCustom());
            }

            var repaidInstalments = request.Ids.Select(id => loansRepository.Get(id)).ToArray();

            if (repaidInstalments.Length > 0)
            {
                projectionChannel.Publish(context.RequestHeaders.GetFlowId(), new DataProjection <Models.Loan, string> {
                    Upsert = repaidInstalments
                });
            }
            return(new Empty());
        }