예제 #1
0
        public メンバ(
            テナントId tenantId,
            string userName,
            string firstName,
            string lastName,
            string emailAddress,
            DateTime initializedOn)
        {
            AssertionConcern.AssertArgumentNotNull(tenantId, "The tenant id must be provided.");

            this.TenantId = tenantId;
            this.EmailAddress = emailAddress;
            this.Enabled = true;
            this.FirstName = firstName;
            this.LastName = lastName;
            this.changeTracker = new メンバ変更トラッカー(initializedOn, initializedOn, initializedOn);
        }
예제 #2
0
 public void ChangeName(string firstName, string lastName, DateTime asOfDate)
 {
     if (this.changeTracker.CanChangeName(asOfDate))
     {
         this.FirstName = firstName;
         this.LastName = lastName;
         this.changeTracker = this.changeTracker.NameChangedOn(asOfDate);
     }
 }
예제 #3
0
 public void Enable(DateTime asOfDate)
 {
     if (this.changeTracker.CanToggleEnabling(asOfDate))
     {
         this.Enabled = true;
         this.changeTracker = this.changeTracker.EnablingOn(asOfDate);
     }
 }
예제 #4
0
 public void ChangeEmailAddress(string emailAddress, DateTime asOfDate)
 {
     if (this.changeTracker.CanChangeEmailAddress(asOfDate)
         && !this.EmailAddress.Equals(emailAddress))
     {
         this.EmailAddress = emailAddress;
         this.changeTracker = this.changeTracker.EmailAddressChangedOn(asOfDate);
     }
 }