public async Task <Unit> Handle(AddNewPaymentCommand request, CancellationToken cancellationToken) { var payment = Domain.Payments.Payment.Factory.NewPayment(request.AggregateId, request.UserId, request.CardNumber, request.ExpiryMonth, request.ExpiryYear, request.Amount, request.CurrencyCode, request.CVV); var response = await _repository.CreateFromRequestAsync(payment); if (!response.Success) { var errorEvent = new AddNewPaymentErrorEvent(); await _mediator.Send(errorEvent); } var createdEvent = new PaymentCreatedEvent(request.AggregateId, payment.UserId, payment.CardNumber, payment.ExpiryMonth, payment.ExpiryYear, payment.Amount, payment.CurrencyCode, payment.CVV); await _mediator.Publish(createdEvent); return(Unit.Value); }
public Task HandleAsync(AddNewPaymentErrorEvent message) { // Do something when error throw new NotImplementedException(); }