void SetupCommands() { Command <Commands.CreateNewCompany>(cmd => { var evt1 = new Events.CompanyCreated(this.PersistenceId); var evt2 = new Events.NameChanged(cmd.Name); Persist(evt1, evt => { this.Entity = new CompanyState(evt); Context.System.EventStream.Publish(evt); Persist(evt2, e => { this.Entity.Apply(e); this.CheckForSnapshot(); Context.System.EventStream.Publish(e); }); }); }); Command <Commands.ChangeCompanyName>(cmd => { var evt = new Events.NameChanged(cmd.Name); Persist(evt, e => { this.Entity.Apply(e); this.CheckForSnapshot(); Context.System.EventStream.Publish(e); }); }); }
public CompanyState(Events.CompanyCreated evt) { this.PersistenceId = evt.Id; }