protected override async Task <EventProcessingResult> TryProcessEventFromConsumerAsync( IEventStreamConsumer consumer, StreamVersion notificationStreamVersion) { foreach (var journaledEvent in consumer.EnumerateEvents()) { var failed = false; try { await ProcessEventAsync(journaledEvent); } catch (Exception exception) { ListenerLogger.Error( exception, "Processing event {EventId} of type {EventType} from stream {Stream} failed.", journaledEvent.EventId, journaledEvent.EventTypeName, consumer.StreamName); failed = true; } if (failed) { await consumer.CommitProcessedStreamVersionAsync(skipCurrent : true); return(new EventProcessingResult(false, false)); } } return(new EventProcessingResult(true, true)); }
protected override async Task <EventProcessingResult> TryProcessEventFromConsumerAsync( IEventStreamConsumer consumer, StreamVersion notificationStreamVersion) { try { await ProcessEventBatchAsync(consumer.EnumerateEvents().ToArray()); return(new EventProcessingResult(true, true)); } catch (Exception exception) { ListenerLogger.Error( exception, "Processing event batch from stream {Stream} failed.", consumer.StreamName); return(new EventProcessingResult(false, false)); } }