Exemplo n.º 1
0
        public void VerifyOrAddPaymentMethod(
            int cardTypeId, string alias, string cardNumber,
            string securityNumber, string cardHolderName, DateTime expiration, OrderId orderId)
        {
            var existingPayment = _paymentMethods.Where(p => p.IsEqualTo(cardTypeId, cardNumber, expiration))
                                  .SingleOrDefault();

            if (existingPayment != null)
            {
                Emit(new BuyerAndPaymentMethodVerifiedDomainEvent(existingPayment.Id, orderId));
            }
            else
            {
                var paymentMethodId = PaymentMethodId.New;

                var paymentMethodAdded = new BuyerPaymentMethodAddedDomainEvent(paymentMethodId, cardTypeId, alias, cardNumber, securityNumber, cardHolderName, expiration);
                Emit(paymentMethodAdded);

                var paymentMethodVerified = new BuyerAndPaymentMethodVerifiedDomainEvent(paymentMethodId, orderId);
                Emit(paymentMethodVerified);
            }
        }
Exemplo n.º 2
0
 public void Apply(BuyerAndPaymentMethodVerifiedDomainEvent aggregateEvent)
 {
 }