public static void UseEventMessageProcessor( this IAppBuilder app, EventProcessorHost eventProcessorHost, EventDataSerializer serializer, IMessageHandler messageHandler, IMessageProcessingExceptionHandler <EventData> exceptionHandler) { if (app == null) { throw new ArgumentNullException(nameof(app)); } if (eventProcessorHost == null) { throw new ArgumentNullException(nameof(eventProcessorHost)); } if (serializer == null) { throw new ArgumentNullException(nameof(serializer)); } if (messageHandler == null) { throw new ArgumentNullException(nameof(messageHandler)); } if (exceptionHandler == null) { throw new ArgumentNullException(nameof(exceptionHandler)); } CancellationToken cancellationToken = new AppProperties(app.Properties).OnAppDisposing; var processorFactory = new EventMessageProcessorFactory( serializer, messageHandler, exceptionHandler, cancellationToken); Start(eventProcessorHost, processorFactory); cancellationToken.Register(() => Stop(eventProcessorHost)); }
private static void Start( EventProcessorHost eventProcessorHost, EventMessageProcessorFactory processorFactory) => eventProcessorHost.RegisterEventProcessorFactoryAsync(processorFactory).Wait();