コード例 #1
0
        /// <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);
                });
            });
        }
コード例 #2
0
 public void Apply(CustomerDeleted @event)
 {
     _isDeleted = true;
 }
コード例 #3
0
 public void Handle(CustomerDeleted @event)
 {
     documentStoreFactory().Delete <CustomerDocument>(@event.SourceId.ToString());
 }