public void Can_invoke_handlers() { List <object> projectedEvents = new List <object>(); var handlerResolver = new ProjectionHandlerResolver(new TestProjectionModule(projectedEvents)); var handlers = handlerResolver.ResolveAll <TestEvent>().ToArray(); var projectionEvent = new ProjectionEvent <TestEvent>("streamid", Guid.NewGuid(), 1, DateTimeOffset.UtcNow, null, new TestEvent()); foreach (var handler in handlers) { handler(projectionEvent, CancellationToken.None); } projectedEvents.Count.Should().Be(1); }
private async Task DispatchInternal <T>( string streamid, Guid eventId, int version, DateTimeOffset timeStamp, IReadOnlyDictionary <string, object> headers, T @event) where T : class { var projectionEvent = new ProjectionEvent <T>(streamid, eventId, version, timeStamp, headers, @event); var handlers = _handlerResolver.ResolveAll <T>(); foreach (var handler in handlers) { await handler(projectionEvent, _disposed.Token); } }
private static async Task DispatchInternal <T>( IProjectionHandlerResolver eventHandlerResolver, string streamid, Guid eventId, int version, DateTimeOffset timeStamp, IReadOnlyDictionary <string, object> headers, T @event, CancellationToken cancellationToken) where T : class { var eventMessage = new ProjectionEvent <T>(streamid, eventId, version, timeStamp, headers, @event); var handlers = eventHandlerResolver.ResolveAll <T>(); foreach (var handler in handlers) { await handler(eventMessage, cancellationToken); } }