public async Task Consume(ConsumeContext <PaymentCreatedEvent> context) { PaymentCreatedEvent paymentCreatedEvent = context.Message; long orderId = long.Parse(paymentCreatedEvent.CorrelationId); await _distributedLockManager.LockAsync(OrderOperationKey(orderId), async() => { IOrderStateMachine orderStateMachine = await _orderStateMachineFactory.BuildOrderStateMachineAsync(orderId); orderStateMachine.SetAsPaymentStarted(); }); }
public Payment(PaymentCreatedEvent @event) { Id = @event.Id; AcquiringBankId = @event.AcquiringBankId; Amount = @event.Amount; CardNumber = @event.CardNumber; Cvv = @event.Cvv; ExpiryYear = @event.ExpiryYear; ExpiryMonth = @event.ExpiryMonth; Currency = @event.Currency; Status = @event.Status; }
private void When(PaymentCreatedEvent @event) { Id = @event.Id; CardNumber = @event.CardNumber; CardExpiryMonth = @event.CardExpiryMonth; CardExpiryYear = @event.CardExpiryYear; Amount = @event.Amount; Currency = @event.Currency; CVV = @event.CVV; EncriptionKey = @event.EncriptionKey; BankPaymentIdentifier = @event.BankPaymentIdentifier; PaymentStatus = @event.PaymentStatus; CreatedDate = @event.OccurredOn; }
public Payment(string cardNumber, string cardExpiryMonth, string cardExpiryYear, decimal amount, string currency, string cvv, string encriptionKey, string bankPaymentIdentifier, string paymentStatus) { var @event = new PaymentCreatedEvent(cardNumber, cardExpiryMonth, cardExpiryYear, amount, currency, cvv, encriptionKey, bankPaymentIdentifier, paymentStatus); AddDomainEvent(@event); Apply(@event); }
public Task Process(string method, decimal amount) { var tEvent = new PaymentCreatedEvent(); switch (method) { case "Cash": BasePayment cashPayment = new CashPayment(); cashPayment.Execute(tEvent); break; case "Credit": BasePayment creditPayment = new CreditPayment(); creditPayment.Execute(tEvent); break; } return(Task.CompletedTask); }
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 PaymentCreatedNotification(PaymentCreatedEvent domainEvent) : base(domainEvent) { this.PaymentId = domainEvent.PaymentId; }
public void Apply(PaymentCreatedEvent @event) { When((dynamic)@event); }