private UserRegistration( string login, string password, string email, string firstName, string lastName, IUsersCounter usersCounter, string confirmLink) { this.CheckRule(new UserLoginMustBeUniqueRule(usersCounter, login)); this.Id = new UserRegistrationId(Guid.NewGuid()); _login = login; _password = password; _email = email; _firstName = firstName; _lastName = lastName; _name = $"{firstName} {lastName}"; _registerDate = DateTime.UtcNow; _status = UserRegistrationStatus.WaitingForConfirmation; this.AddDomainEvent(new NewUserRegisteredDomainEvent( this.Id, _login, _email, _firstName, _lastName, _name, _registerDate, confirmLink)); }
public void Expire() { this.CheckRule(new UserRegistrationCannotBeExpiredMoreThanOnceRule(_status)); _status = UserRegistrationStatus.Expired; this.AddDomainEvent(new UserRegistrationExpiredDomainEvent(this.Id)); }
public void Confirm() { this.CheckRule(new UserRegistrationCannotBeConfirmedMoreThanOnceRule(_status)); this.CheckRule(new UserRegistrationCannotBeConfirmedAfterExpirationRule(_status)); _status = UserRegistrationStatus.Confirmed; _confirmedDate = DateTime.UtcNow; this.AddDomainEvent(new UserRegistrationConfirmedDomainEvent(this.Id)); }