예제 #1
0
        internal void Create(RegisterPerson cmd)
        {
            if (State.Version > 0)
            {
                if (State.Name == cmd.Name)
                {
                    return;
                }
                else
                {
                    throw DomainError.Named("PersonAlreadyRegistered", $"A person named {State.Name} is already registered with id {State.Id}");
                }
            }
            var e = new PersonRegistered()
            {
                Id = cmd.Id, Name = cmd.Name
            };

            Apply(e);
            PublishedEvents.Add(e);
        }
예제 #2
0
 void When(PersonRegistered e)
 {
     Id   = e.Id;
     Name = e.Name;
 }