private void ApplyMeetingsEvent(MeetingsEvent @event) { _readModel.Integrate(@event); @event.Apply( meetingStarted => ListenToEvents <MeetingEvent>($"Meeting-{meetingStarted.MeetingId}", ApplyMeetingEvent) ); }
private IEnumerable <MeetingsListEvent> HandleMeetingsEvent(MeetingsEvent meetingsEvent) { _logger.LogInformation($"Received {meetingsEvent}"); if (meetingsEvent is MeetingsEvent.MeetingStartedEvent meetingStarted) { AddProcessor <MeetingEvent>($"Meeting-{meetingStarted.MeetingId}", HandleMeetingEvent); } return(_readModel.Integrate(meetingsEvent)); }
private void ApplyMeetingsEvent(MeetingsEvent @event) { @event.Apply( meetingStarted => { _logger.LogInformation($"Adding Meeting {meetingStarted.MeetingId}"); _readModelCollection.Add(meetingStarted.MeetingId, meetingStarted.Name); ListenToEvents <MeetingEvent>($"Meeting-{meetingStarted.MeetingId}", ApplyMeetingEvent); }); }
private IEnumerable <MeetingViewEvent> HandleMeetingsEvent(MeetingsEvent meetingsEvent) { _logger.LogInformation($"Received {meetingsEvent}"); if (meetingsEvent is MeetingsEvent.MeetingStartedEvent meetingStarted) { _readModels.Add(meetingStarted.MeetingId, new MeetingViewReadModel(meetingStarted.MeetingId, meetingStarted.Name)); AddProcessor <MeetingEvent>($"Meeting-{meetingStarted.MeetingId}", HandleMeetingEvent); } return(Enumerable.Empty <MeetingViewEvent>()); }
public IEnumerable <MeetingsListEvent> Integrate(MeetingsEvent @event) => @event.Match( startedEvent => AddMeeting(startedEvent.MeetingId, startedEvent.Name) );