public void Handle(OrderCancelledBecauseOfError @event)
        {
            var orderDetail = _orderDao.FindOrderStatusById(@event.SourceId);

            if (orderDetail.IsPrepaid)
            {
                var response = _paymentService.RefundPayment(orderDetail.CompanyKey, @event.SourceId);

                if (response.IsSuccessful)
                {
                    _commandBus.Send(new UpdateRefundedOrder
                    {
                        OrderId      = @event.SourceId,
                        IsSuccessful = response.IsSuccessful,
                        Message      = response.Message
                    });
                }
            }
            else
            {
                // void the preauthorization to prevent misuse fees
                _paymentService.VoidPreAuthorization(orderDetail.CompanyKey, @event.SourceId);
            }
        }
Esempio n. 2
0
 private void OnOrderCancelledBecauseOfError(OrderCancelledBecauseOfError obj)
 {
     _status = OrderStatus.Canceled;
 }
Esempio n. 3
0
 public void Handle(OrderCancelledBecauseOfError @event)
 {
     SendUnapplyPromotionCommand(@event.SourceId);
 }