Skip to content

Commit

Permalink
fix: or-1349 don't use bus
Browse files Browse the repository at this point in the history
  • Loading branch information
koenmetsu committed Jan 24, 2024
1 parent 7c1bbb7 commit cb3b758
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ namespace AssociationRegistry.Admin.ProjectionHost.Infrastructure.Program.WebApp
using Projections.Detail;
using Projections.Historiek;
using Projections.Search;
using Projections.Search.DuplicateDetection;
using Projections.Search.Zoeken;
using Schema.Detail;
using Schema.Historiek;
Expand Down Expand Up @@ -94,7 +95,11 @@ static JsonNetSerializer CreateCustomMartenSerializer()
opts.Projections.Add(
new MartenSubscription(
new MartenEventsConsumer(
serviceProvider.GetRequiredService<IMessageBus>()
serviceProvider.GetRequiredService<IMessageBus>(),
new DuplicateDetectionProjectionHandler(
serviceProvider.GetRequiredService<IElasticRepository>()),
new BeheerZoekProjectionHandler(
serviceProvider.GetRequiredService<IElasticRepository>())
)
),
ProjectionLifecycle.Async,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,26 @@
namespace AssociationRegistry.Admin.ProjectionHost.Projections.Search;

using DuplicateDetection;
using Events;
using Marten.Events;
using Wolverine;
using Wolverine.Runtime.Routing;
using Zoeken;
using IEvent = Framework.IEvent;

public class MartenEventsConsumer : IMartenEventsConsumer
{
private readonly IMessageBus _bus;
private readonly DuplicateDetectionProjectionHandler _duplicateDetectionProjectionHandler;
private readonly BeheerZoekProjectionHandler _zoekProjectionHandler;

public MartenEventsConsumer(IMessageBus bus)
public MartenEventsConsumer(IMessageBus bus,
DuplicateDetectionProjectionHandler duplicateDetectionProjectionHandler,
BeheerZoekProjectionHandler zoekProjectionHandler)
{
_bus = bus;
_duplicateDetectionProjectionHandler = duplicateDetectionProjectionHandler;
_zoekProjectionHandler = zoekProjectionHandler;
}

public async Task ConsumeAsync(IReadOnlyList<StreamAction> streamActions)
Expand All @@ -20,13 +30,85 @@ public async Task ConsumeAsync(IReadOnlyList<StreamAction> streamActions)
var eventEnvelope =
(IEventEnvelope)Activator.CreateInstance(typeof(EventEnvelope<>).MakeGenericType(@event.EventType), @event)!;

try
switch (@event.EventType.Name)
{
await _bus.InvokeAsync(eventEnvelope);
}
catch (IndeterminateRoutesException)
{
//ignore

case nameof(DoelgroepWerdGewijzigd):
await _zoekProjectionHandler.Handle((EventEnvelope<DoelgroepWerdGewijzigd>)eventEnvelope);
break;

case nameof(FeitelijkeVerenigingWerdGeregistreerd):
await _duplicateDetectionProjectionHandler.Handle((EventEnvelope<FeitelijkeVerenigingWerdGeregistreerd>)eventEnvelope);
await _zoekProjectionHandler.Handle((EventEnvelope<FeitelijkeVerenigingWerdGeregistreerd>)eventEnvelope);
break;

case nameof(HoofdactiviteitenVerenigingsloketWerdenGewijzigd):
await _duplicateDetectionProjectionHandler.Handle((EventEnvelope<HoofdactiviteitenVerenigingsloketWerdenGewijzigd>)eventEnvelope);
await _zoekProjectionHandler.Handle((EventEnvelope<HoofdactiviteitenVerenigingsloketWerdenGewijzigd>)eventEnvelope);
break;

case nameof(KorteNaamWerdGewijzigd):
await _duplicateDetectionProjectionHandler.Handle((EventEnvelope<KorteNaamWerdGewijzigd>)eventEnvelope);
await _zoekProjectionHandler.Handle((EventEnvelope<KorteNaamWerdGewijzigd>)eventEnvelope);
break;

case nameof(LocatieWerdGewijzigd):
await _duplicateDetectionProjectionHandler.Handle((EventEnvelope<LocatieWerdGewijzigd>)eventEnvelope);
await _zoekProjectionHandler.Handle((EventEnvelope<LocatieWerdGewijzigd>)eventEnvelope);
break;

case nameof(LocatieWerdToegevoegd):
await _duplicateDetectionProjectionHandler.Handle((EventEnvelope<LocatieWerdToegevoegd>)eventEnvelope);
await _zoekProjectionHandler.Handle((EventEnvelope<LocatieWerdToegevoegd>)eventEnvelope);
break;

case nameof(LocatieWerdVerwijderd):
await _duplicateDetectionProjectionHandler.Handle((EventEnvelope<LocatieWerdVerwijderd>)eventEnvelope);
await _zoekProjectionHandler.Handle((EventEnvelope<LocatieWerdVerwijderd>)eventEnvelope);
break;


case nameof(MaatschappelijkeZetelVolgensKBOWerdGewijzigd):
await _zoekProjectionHandler.Handle((EventEnvelope<MaatschappelijkeZetelVolgensKBOWerdGewijzigd>)eventEnvelope);
break;

case nameof(MaatschappelijkeZetelWerdOvergenomenUitKbo):
await _duplicateDetectionProjectionHandler.Handle((EventEnvelope<MaatschappelijkeZetelWerdOvergenomenUitKbo>)eventEnvelope);
await _zoekProjectionHandler.Handle((EventEnvelope<MaatschappelijkeZetelWerdOvergenomenUitKbo>)eventEnvelope);
break;

case nameof(NaamWerdGewijzigd):
await _duplicateDetectionProjectionHandler.Handle((EventEnvelope<NaamWerdGewijzigd>)eventEnvelope);
await _zoekProjectionHandler.Handle((EventEnvelope<NaamWerdGewijzigd>)eventEnvelope);
break;

case nameof(RoepnaamWerdGewijzigd):
await _zoekProjectionHandler.Handle((EventEnvelope<RoepnaamWerdGewijzigd>)eventEnvelope);
break;


case nameof(VerenigingMetRechtspersoonlijkheidWerdGeregistreerd):
await _duplicateDetectionProjectionHandler.Handle((EventEnvelope<VerenigingMetRechtspersoonlijkheidWerdGeregistreerd>)eventEnvelope);
await _zoekProjectionHandler.Handle((EventEnvelope<VerenigingMetRechtspersoonlijkheidWerdGeregistreerd>)eventEnvelope);
break;

case nameof(VerenigingWerdGestopt):
await _duplicateDetectionProjectionHandler.Handle((EventEnvelope<VerenigingWerdGestopt>)eventEnvelope);
await _zoekProjectionHandler.Handle((EventEnvelope<VerenigingWerdGestopt>)eventEnvelope);
break;

case nameof(VerenigingWerdIngeschrevenInPubliekeDatastroom):
await _zoekProjectionHandler.Handle((EventEnvelope<VerenigingWerdIngeschrevenInPubliekeDatastroom>)eventEnvelope);
break;

case nameof(VerenigingWerdUitgeschrevenUitPubliekeDatastroom):
await _zoekProjectionHandler.Handle((EventEnvelope<VerenigingWerdUitgeschrevenUitPubliekeDatastroom>)eventEnvelope);
break;

case nameof(VerenigingWerdVerwijderd):
await _duplicateDetectionProjectionHandler.Handle((EventEnvelope<VerenigingWerdVerwijderd>)eventEnvelope);
await _zoekProjectionHandler.Handle((EventEnvelope<VerenigingWerdVerwijderd>)eventEnvelope);
break;
}
}
}
Expand Down

0 comments on commit cb3b758

Please sign in to comment.