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) });
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(); }