private void When(SubscriptionCreatedDomainEvent @event)
 {
     this.Id             = @event.SubscriptionId;
     _subscriberId       = new SubscriberId(@event.PayerId);
     _subscriptionPeriod = SubscriptionPeriod.Of(@event.SubscriptionPeriodCode);
     _countryCode        = @event.CountryCode;
     _status             = SubscriptionStatus.Of(@event.Status);
     _expirationDate     = @event.ExpirationDate;
 }
Exemple #2
0
 private async Task When(SubscriptionCreatedDomainEvent subscriptionCreated)
 {
     await _connection.ExecuteScalarAsync(
         "UPDATE payments.SubscriptionPayments SET SubscriptionId = @SubscriptionId " +
         "WHERE PaymentId = @SubscriptionPaymentId ",
         new
     {
         subscriptionCreated.SubscriptionId,
         subscriptionCreated.SubscriptionPaymentId
     });
 }
Exemple #3
0
        private async Task When(SubscriptionCreatedDomainEvent subscriptionCreated)
        {
            var period = SubscriptionPeriod.GetName(subscriptionCreated.SubscriptionPeriodCode);

            await _connection.ExecuteScalarAsync("INSERT INTO payments.SubscriptionDetails " +
                                                 "([Id], [Period], [Status], [CountryCode], [ExpirationDate]) " +
                                                 "VALUES (@SubscriptionId, @Period, @Status, @CountryCode, @ExpirationDate)",
                                                 new
            {
                subscriptionCreated.SubscriptionId,
                period,
                subscriptionCreated.Status,
                subscriptionCreated.CountryCode,
                subscriptionCreated.ExpirationDate
            });
        }
        public static Subscription Create(
            SubscriptionPaymentSnapshot subscriptionPayment)
        {
            var subscription = new Subscription();

            var expirationDate = SubscriptionDateExpirationCalculator.CalculateForNew(subscriptionPayment.SubscriptionPeriod);

            var subscriptionCreatedDomainEvent = new SubscriptionCreatedDomainEvent(
                subscriptionPayment.Id.Value,
                Guid.NewGuid(),
                subscriptionPayment.PayerId.Value,
                subscriptionPayment.SubscriptionPeriod.Code,
                subscriptionPayment.CountryCode,
                expirationDate,
                SubscriptionStatus.Active.Code);

            subscription.Apply(subscriptionCreatedDomainEvent);
            subscription.AddDomainEvent(subscriptionCreatedDomainEvent);

            return(subscription);
        }