コード例 #1
0
        private bool ApplyEventToState(CustomerModifiedEvent evt)
        {
            var customer = Customers.FirstOrDefault(c => evt.Id == c.Id);

            if (customer == null)
            {
                return(false);
            }

            Customers = Customers.Replace(customer,
                                          customer with {
                Name = evt.NewName.ReplaceIfSome(customer.Name)
            });
コード例 #2
0
        private void HandleDomainEvent(DomainEvent evt)
        {
            var _ = evt switch
            {
                CustomerAddedEvent castedEvt => ApplyEventToState(castedEvt),
                CustomerModifiedEvent castedEvt => ApplyEventToState(castedEvt),
                CustomerDeletedEvent castedEvt => ApplyEventToState(castedEvt),
                RebuildStateEvent castedEvt => ApplyEventToState(castedEvt),
                _ => false,
            };

            RaiseOnStateChanged();
        }