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}" })); } }
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)); } }