Beispiel #1
0
        private async Task WriteToHistoryAsync(DecodedEvent decodedEvent, IEventHandler handler)
        {
            var history = new EventHandlerHistoryDto
            {
                EventHandlerId      = handler.Id,
                EventSubscriptionId = handler.Subscription?.Id ?? 0,
                EventKey            = decodedEvent.Key,
                SubscriberId        = handler.Subscription?.SubscriberId ?? 0
            };

            await History.UpsertAsync(history);
        }
Beispiel #2
0
        public async Task EventHandlerHistory()
        {
            var dto1 = new EventHandlerHistoryDto {
                SubscriberId = 99, EventSubscriptionId = 101, EventHandlerId = 987, EventKey = "xyz1"
            };
            var dto2 = new EventHandlerHistoryDto {
                SubscriberId = 99, EventSubscriptionId = 101, EventHandlerId = 987, EventKey = "xyz2"
            };
            var dto3 = new EventHandlerHistoryDto {
                SubscriberId = 100, EventSubscriptionId = 102, EventHandlerId = 988, EventKey = "xyz1"
            };

            await Fixture.ConfigRepo.EventHandlerHistoryRepo.UpsertAsync(dto1);

            await Fixture.ConfigRepo.EventHandlerHistoryRepo.UpsertAsync(dto2);

            await Fixture.ConfigRepo.EventHandlerHistoryRepo.UpsertAsync(dto3);

            Assert.True(await Fixture.ConfigRepo.EventHandlerHistoryRepo.ContainsAsync(dto1.EventHandlerId, dto1.EventKey));
            Assert.True(await Fixture.ConfigRepo.EventHandlerHistoryRepo.ContainsAsync(dto2.EventHandlerId, dto2.EventKey));
            Assert.True(await Fixture.ConfigRepo.EventHandlerHistoryRepo.ContainsAsync(dto2.EventHandlerId, dto2.EventKey));

            Assert.False(await Fixture.ConfigRepo.EventHandlerHistoryRepo.ContainsAsync(1232345346, "blahblah"));

            var fromRep = await Fixture.ConfigRepo.EventHandlerHistoryRepo.GetAsync(dto1.EventHandlerId, dto1.EventKey);

            Assert.Equal(dto1.EventHandlerId, fromRep.EventHandlerId);
            Assert.Equal(dto1.EventKey, fromRep.EventKey);
            Assert.Equal(dto1.EventSubscriptionId, fromRep.EventSubscriptionId);
            Assert.Equal(dto1.SubscriberId, fromRep.SubscriberId);

            var fromRepoForHandler = await Fixture.ConfigRepo.EventHandlerHistoryRepo.GetManyAsync(dto1.EventHandlerId);

            Assert.Equal(dto1.EventKey, fromRepoForHandler[0].EventKey);
            Assert.Equal(dto2.EventKey, fromRepoForHandler[1].EventKey);
        }