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); }
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); }