public async Task <IActionResult> Post([FromBody] PaymentProcessingRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var result = await _paymentHandler.Handle(request);

                return(Ok(result));
            }
            catch (PaymentProcessingException exception)
            {
                _logger.LogError(exception.ToString());

                return(BadRequest(new PaymentProcessingFailedResponse
                {
                    Success = false,
                    Message = $"An error has occurred. Details: {exception.Message}"
                }));
            }
            catch (Exception exception)
            {
                _logger.LogError(exception.ToString());

                return(BadRequest(new PaymentProcessingFailedResponse
                {
                    Success = false,
                    Message = $"An unhandled error has occurred. Details: {exception.Message}"
                }));
            }
        }
示例#2
0
        public void Handle(MakePayment makePayment)
        {
            var paymentReceipt = _paymentHandler.Handle(makePayment.Payment);

            if (paymentReceipt is FailureReceipt)
            {
                _eventAggregator.Publish(new Events.PaymentRejected());
            }
        }
 public bool Handle(Payment payment)
 {
     if (CanHandleRequest(payment))
     {
         return(ProcessPayment(payment));
     }
     else
     {
         return(_nextHanlder.Handle(payment));
     }
 }