From 12b1e79d1d1dd357f2524edbcdde3e28b5dbec5c Mon Sep 17 00:00:00 2001 From: emalfroy Date: Wed, 18 Dec 2024 15:33:32 +0100 Subject: [PATCH] feat: or-2334 implement markeer als dubbel in acm --- .../VerenigingenPerInszProjection.cs | 42 +++++++++++++++++-- .../VerenigingPerInszMapper.cs | 2 +- .../Returns_VerenigingenPerInszResponse.cs | 2 +- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/src/AssociationRegistry.Acm.Api/Projections/VerenigingenPerInszProjection.cs b/src/AssociationRegistry.Acm.Api/Projections/VerenigingenPerInszProjection.cs index a213beec9..83980e8b7 100644 --- a/src/AssociationRegistry.Acm.Api/Projections/VerenigingenPerInszProjection.cs +++ b/src/AssociationRegistry.Acm.Api/Projections/VerenigingenPerInszProjection.cs @@ -106,6 +106,15 @@ public async Task Project(IEvent verenigingWerdVerwijd ops.StoreObjects(docs); } + public async Task Project(IEvent verenigingWerdGemarkeerdAlsDubbelVan, IDocumentOperations ops) + { + var docs = new List(); + + docs.AddRange(await VerenigingenPerInszProjector.Apply(verenigingWerdGemarkeerdAlsDubbelVan, ops)); + + ops.StoreObjects(docs); + } + public async Task Project(IEvent verenigingAanvaarddeDubbeleVereniging, IDocumentOperations ops) { var docs = new List(); @@ -265,7 +274,7 @@ public static async Task> Apply( { verenigingenPerInszDocument.Verenigingen = verenigingenPerInszDocument.Verenigingen .Where(v => v.VCode != - verenigingWerdVerwijderd.StreamKey) + verenigingWerdVerwijderd.StreamKey) .ToList(); docs.Add(verenigingenPerInszDocument); @@ -283,7 +292,8 @@ public static async Task> Apply( foreach (var verenigingenPerInszDocument in documents) { - verenigingenPerInszDocument.Verenigingen.Single(vereniging => vereniging.VCode == rechtsvormWerdGewijzigdInKbo.StreamKey!).Verenigingstype = + verenigingenPerInszDocument.Verenigingen.Single(vereniging => vereniging.VCode == rechtsvormWerdGewijzigdInKbo.StreamKey!) + .Verenigingstype = MapVereniging(AssociationRegistry.Vereniging.Verenigingstype.Parse(rechtsvormWerdGewijzigdInKbo.Data.Rechtsvorm)); docs.Add(verenigingenPerInszDocument); @@ -301,7 +311,9 @@ public static async Task> Apply( foreach (var verenigingenPerInszDocument in documents) { - var vereniging = verenigingenPerInszDocument.Verenigingen.Single(vereniging => vereniging.VCode == verenigingAanvaarddeDubbeleVereniging.StreamKey!); + var vereniging = + verenigingenPerInszDocument.Verenigingen.Single( + vereniging => vereniging.VCode == verenigingAanvaarddeDubbeleVereniging.StreamKey!); vereniging.CorresponderendeVCodes = vereniging.CorresponderendeVCodes @@ -313,6 +325,27 @@ public static async Task> Apply( return docs; } + + public static async Task> Apply( + IEvent verenigingWerdGemarkeerdAlsDubbelVan, + IDocumentOperations ops) + { + var docs = new List(); + var documents = await ops.GetVerenigingenPerInszDocuments(verenigingWerdGemarkeerdAlsDubbelVan.Data.VCode); + + foreach (var verenigingenPerInszDocument in documents) + { + var vereniging = + verenigingenPerInszDocument.Verenigingen.Single( + vereniging => vereniging.VCode == verenigingWerdGemarkeerdAlsDubbelVan.StreamKey!); + + vereniging.IsDubbel = true; + + docs.Add(verenigingenPerInszDocument); + } + + return docs; + } } private static class VerenigingDocumentProjector @@ -343,7 +376,8 @@ public static async Task Apply( { var verenigingDocument = await ops.GetVerenigingDocument(rechtsvormWerdGewijzigdInKbo.StreamKey); - verenigingDocument.VerenigingsType = MapVereniging(AssociationRegistry.Vereniging.Verenigingstype.Parse(rechtsvormWerdGewijzigdInKbo.Data.Rechtsvorm)); + verenigingDocument.VerenigingsType = + MapVereniging(AssociationRegistry.Vereniging.Verenigingstype.Parse(rechtsvormWerdGewijzigdInKbo.Data.Rechtsvorm)); return verenigingDocument; } diff --git a/src/AssociationRegistry.Acm.Api/VerenigingenPerInsz/VerenigingPerInszMapper.cs b/src/AssociationRegistry.Acm.Api/VerenigingenPerInsz/VerenigingPerInszMapper.cs index 1e293f591..59300ad80 100644 --- a/src/AssociationRegistry.Acm.Api/VerenigingenPerInsz/VerenigingPerInszMapper.cs +++ b/src/AssociationRegistry.Acm.Api/VerenigingenPerInsz/VerenigingPerInszMapper.cs @@ -10,7 +10,7 @@ public static VerenigingenPerInszResponse ToResponse(VerenigingenPerInszDocument => new() { Insz = doc.Insz, - Verenigingen = doc.Verenigingen.Select(Map).ToArray(), + Verenigingen = doc.Verenigingen.Where(x => !x.IsDubbel).Select(Map).ToArray(), KboNummers = verenigingenPerKbo.Select(Map).ToArray(), }; diff --git a/test/AssociationRegistry.Test.E2E/When_Markeer_Als_Dubbel_Van/Acm/Returns_VerenigingenPerInszResponse.cs b/test/AssociationRegistry.Test.E2E/When_Markeer_Als_Dubbel_Van/Acm/Returns_VerenigingenPerInszResponse.cs index 4b244bb54..1a139dee6 100644 --- a/test/AssociationRegistry.Test.E2E/When_Markeer_Als_Dubbel_Van/Acm/Returns_VerenigingenPerInszResponse.cs +++ b/test/AssociationRegistry.Test.E2E/When_Markeer_Als_Dubbel_Van/Acm/Returns_VerenigingenPerInszResponse.cs @@ -39,7 +39,7 @@ public void With_Verenigingen() // Authentieke vereniging wordt getoond met corresponderende verenigingen new VerenigingenPerInszResponse.Vereniging() { - VCode = TestContext.VCode, + VCode = TestContext.Scenario.AndereFeitelijkeVerenigingWerdGeregistreerd.VCode, CorresponderendeVCodes = [TestContext.Scenario.FeitelijkeVerenigingWerdGeregistreerd.VCode], VertegenwoordigerId = TestContext.Scenario.AndereFeitelijkeVerenigingWerdGeregistreerd.Vertegenwoordigers[0].VertegenwoordigerId, Naam = TestContext.Scenario.AndereFeitelijkeVerenigingWerdGeregistreerd.Naam,