/// <summary> /// Setup the Commands /// </summary> private void InitCommands() { Command <CreateCustomer>(cmd => { var evt = new CustomerCreated(cmd.Id, cmd.FirstName, cmd.LastName); Persist(evt, e => { _readStore.CreateCustomer(new Customer { CustomerId = evt.Id, CustomerName = $"{evt.FirstName} {evt.LastName}", }); Context.System.EventStream.Publish(e); }); }); Command <UpdateCustomer>(cmd => { var evt = new CustomerUpdated(cmd.Id, cmd.FirstName, cmd.LastName); Persist(evt, e => { _readStore.UpdateCustomer(new Customer { CustomerId = evt.Id, CustomerName = $"{evt.FirstName} {evt.LastName}", }); Context.System.EventStream.Publish(e); }); }); Command <DeleteCustomer>(cmd => { var evt = new CustomerDeleted(cmd.Id); Persist(evt, e => { _readStore.DeleteCustomerById(evt.Id); Context.System.EventStream.Publish(e); }); }); }
public void Apply(CustomerDeleted @event) { _isDeleted = true; }
public void Handle(CustomerDeleted @event) { documentStoreFactory().Delete <CustomerDocument>(@event.SourceId.ToString()); }