private void When(SubscriptionRenewedDomainEvent @event)
 {
     this.Id             = @event.SubscriptionId;
     _subscriptionPeriod = SubscriptionPeriod.Of(@event.SubscriptionPeriodCode);
     _status             = SubscriptionStatus.Of(@event.Status);
     _expirationDate     = @event.ExpirationDate;
 }
Beispiel #2
0
        public void Renew(
            SubscriptionRenewalPaymentSnapshot subscriptionRenewalPayment)
        {
            var expirationDate = SubscriptionDateExpirationCalculator.CalculateForRenewal(
                _expirationDate, subscriptionRenewalPayment.SubscriptionPeriod);

            SubscriptionRenewedDomainEvent subscriptionRenewedDomainEvent = new SubscriptionRenewedDomainEvent(
                this.Id,
                expirationDate,
                subscriptionRenewalPayment.PayerId.Value,
                subscriptionRenewalPayment.SubscriptionPeriod.Code,
                SubscriptionStatus.Active.Code);

            this.Apply(subscriptionRenewedDomainEvent);
            this.AddDomainEvent(subscriptionRenewedDomainEvent);
        }
Beispiel #3
0
        private async Task When(SubscriptionRenewedDomainEvent subscriptionRenewed)
        {
            var period = SubscriptionPeriod.GetName(subscriptionRenewed.SubscriptionPeriodCode);

            await _connection.ExecuteScalarAsync("UPDATE payments.SubscriptionDetails " +
                                                 "SET " +
                                                 "[Status] = @Status, " +
                                                 "[ExpirationDate] = @ExpirationDate, " +
                                                 "[Period] = @Period " +
                                                 "WHERE [Id] = @SubscriptionId",
                                                 new
            {
                subscriptionRenewed.SubscriptionId,
                subscriptionRenewed.Status,
                subscriptionRenewed.ExpirationDate,
                period
            });
        }