public async Task <PaymentDto> RefundAsync(Guid paymentId)
        {
            var payment = await _paymentAppService.GetAsync(paymentId);

            await _distributedEventBus.PublishAsync(new RefundPaymentEto
            {
                TenantId          = CurrentTenant.Id,
                CreateRefundInput = new CreateRefundInput
                {
                    PaymentId      = payment.Id,
                    DisplayReason  = "Test0",
                    CustomerRemark = "Test1",
                    StaffRemark    = "Test2",
                    RefundItems    = new List <CreateRefundItemInput>(payment.PaymentItems
                                                                      .Where(item => item.ActualPaymentAmount > 0).Select(item => new CreateRefundItemInput()
                    {
                        PaymentItemId  = item.Id,
                        RefundAmount   = item.ActualPaymentAmount,
                        CustomerRemark = "Test3",
                        StaffRemark    = "Test4"
                    }))
                }
            });

            return(await _paymentAppService.GetAsync(paymentId));
        }
예제 #2
0
        public async Task <PaymentDto> RefundAsync(Guid paymentId)
        {
            var payment = await _paymentAppService.GetAsync(paymentId);

            await _distributedEventBus.PublishAsync(new RefundPaymentEto
            {
                TenantId  = CurrentTenant.Id,
                PaymentId = paymentId,
                Items     = new List <RefundPaymentItemEto>(payment.PaymentItems.Where(item => item.ActualPaymentAmount > 0)
                                                            .Select(item => new RefundPaymentItemEto
                {
                    PaymentItemId  = item.Id,
                    RefundAmount   = item.ActualPaymentAmount,
                    CustomerRemark = "Test1",
                    StaffRemark    = "Test2"
                })),
                DisplayReason   = "Test",
                ExtraProperties = new Dictionary <string, object>(),
            });

            return(await _paymentAppService.GetAsync(paymentId));
        }
 public Task <PaymentDto> GetAsync(Guid id)
 {
     return(_service.GetAsync(id));
 }