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 void Persist(AccountOwnerName view, ProjectionEvent <AccountOwnerRenamed> eventData)
 {
     view.Name = eventData.Data.NewName;
 }
 private void Persist(Lap view, ProjectionEvent <LapFinished> eventData)
 {
     view.End = eventData.Timestamp;
 }
 private void Persist(Lap view, ProjectionEvent <LapStarted> eventData)
 {
     view.Start = eventData.Timestamp;
 }
 private void Persist(CreditCardLimit view, ProjectionEvent <CreditCardWithdrawed> @event)
 {
     view.Limit -= @event.Data.Amount;
     view.LastOperationTimestamp = @event.Timestamp;
 }
 private void Persist(CreditCardLimit view, ProjectionEvent <CreditCardLimitAssigned> @event)
 {
     view.Limit = @event.Data.Limit;
     view.LastOperationTimestamp = @event.Timestamp;
 }
 private void Persist(CreditCardLimit view, ProjectionEvent <CreditCardCreated> @event)
 {
     view.AccountOwnerId         = @event.Data.OwnerId;
     view.LastOperationTimestamp = @event.Timestamp;
 }
 public void Register(ProjectionEvent projectionEvent, Registered domainEvent)
 {
     _databaseGateway.ExecuteUsing(_queryFactory.Register(projectionEvent.Id, domainEvent));
 }