public User(Guid id, UserRegistrationForm form) { if (form == null) { throw new ArgumentNullException(nameof(form)); } Apply(new UserCreated(id, form)); }
public UserRegistrationProcess(UserRegistrationForm registrationForm) { if (registrationForm == null) { throw new ArgumentNullException(nameof(registrationForm)); } var userId = Guid.NewGuid(); Apply(new UserRegistrationStarted(userId, registrationForm)); }
private void Mutate(IEvent @event) { if (@event is UserRegistrationStarted) { var created = @event as UserRegistrationStarted; UserId = created.UserId; _registrationForm = created.Form; State = UserRegistrationProcessState.Created; } else if (@event is EmailAccepted) { State = UserRegistrationProcessState.CreatingUser; } else if (@event is UserRegistrationSucceeded) { State = UserRegistrationProcessState.Succeeded; } else if (@event is UserRegistrationFailed) { State = UserRegistrationProcessState.Failed; } }