//public SubscriptionPaymentSnapshot GetSnapshot()
        //{
        //    return new SubscriptionPaymentSnapshot(new SubscriptionPaymentId(this.Id),  _payerId, _subscriptionPeriod, _countryCode);
        //}

        public void MarkAsPaid()
        {
            MeetingFeePaymentPaidDomainEvent @event =
                new MeetingFeePaymentPaidDomainEvent(this.Id,
                                                     MeetingFeePaymentStatus.Paid.Code);

            this.Apply(@event);
            this.AddDomainEvent(@event);
        }
        public void Expire()
        {
            MeetingFeePaymentPaidDomainEvent @event =
                new MeetingFeePaymentPaidDomainEvent(this.Id,
                                                     MeetingFeePaymentStatus.Expired.Code);

            this.Apply(@event);
            this.AddDomainEvent(@event);
        }
 private void When(MeetingFeePaymentPaidDomainEvent @event)
 {
     _status = MeetingFeePaymentStatus.Of(@event.Status);
 }