Skip to content

Commit

Permalink
refactor: or-2031 clean up
Browse files Browse the repository at this point in the history
  • Loading branch information
koenmetsu committed Mar 4, 2024
1 parent d0422cc commit cb4e25b
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
using Marten.Events;
using Marten.Services;
using Metrics;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Newtonsoft.Json;
Expand All @@ -23,8 +22,7 @@ public static class MartenExtensions
{
public static IServiceCollection AddMarten(
this IServiceCollection services,
PostgreSqlOptionsSection postgreSqlOptions,
IConfiguration configuration)
PostgreSqlOptionsSection postgreSqlOptions)
{
var martenConfiguration = services.AddMarten(
serviceProvider =>
Expand Down
2 changes: 1 addition & 1 deletion src/AssociationRegistry.Admin.Api/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ private static void ConfigureServices(WebApplicationBuilder builder)
.AddTransient<IMagdaRegistreerInschrijvingService, MagdaRegistreerInschrijvingService>()
.AddTransient<IMagdaClient, MagdaClient>()
.AddTransient<IMagdaCallReferenceRepository, MagdaCallReferenceRepository>()
.AddMarten(postgreSqlOptionsSection, builder.Configuration)
.AddMarten(postgreSqlOptionsSection)
.AddElasticSearch(elasticSearchOptionsSection)
.AddOpenTelemetry(new Instrumentation())
.AddHttpContextAccessor()
Expand Down
44 changes: 26 additions & 18 deletions src/AssociationRegistry.Magda/MagdaRegistreerInschrijvingService.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
namespace AssociationRegistry.Magda;

using AssociationRegistry.Framework;
using AssociationRegistry.Kbo;
using AssociationRegistry.Magda.Exceptions;
using AssociationRegistry.Magda.Extensions;
using AssociationRegistry.Magda.Models;
using AssociationRegistry.Magda.Repertorium.RegistreerInschrijving;
using AssociationRegistry.Vereniging;
using Framework;
using Kbo;
using Exceptions;
using Extensions;
using Models;
using Repertorium.RegistreerInschrijving;
using Vereniging;
using Microsoft.Extensions.Logging;
using ResultNet;
using System;
Expand All @@ -15,6 +15,7 @@

public class MagdaRegistreerInschrijvingService : IMagdaRegistreerInschrijvingService
{
private const ResultaatEnumType Geslaagd = ResultaatEnumType.Item1;
private readonly IMagdaCallReferenceRepository _magdaCallReferenceRepository;
private readonly IMagdaClient _magdaClient;
private readonly ILogger<MagdaRegistreerInschrijvingService> _logger;
Expand Down Expand Up @@ -47,18 +48,9 @@ public async Task<Result> RegistreerInschrijving(

var uitzonderingen = response?.Body?.RegistreerInschrijvingResponse?.Repliek.Antwoorden.Antwoord.Uitzonderingen;

_logger.LogInformation(
"Uitzondering bij het aanroepen van de Magda GeefOnderneming service voor KBO-nummer {KboNummer}: " +
"\nFouten:\n'{Uitzonderingen}'" +
"\nWaarschuwingen:\n'{Waarschuwingen}'" +
"\nInformatie:\n'{Informatie}'",
kboNummer,
uitzonderingen?.ConcatenateUitzonderingen(separator: "\n", UitzonderingTypeType.FOUT),
uitzonderingen?.ConcatenateUitzonderingen(separator: "\n", UitzonderingTypeType.WAARSCHUWING),
uitzonderingen?.ConcatenateUitzonderingen(separator: "\n", UitzonderingTypeType.INFORMATIE));

LogIndienUitzonderingen(kboNummer, uitzonderingen);

return response?.Body?.RegistreerInschrijvingResponse?.Repliek.Antwoorden.Antwoord.Inhoud.Resultaat.Value == ResultaatEnumType.Item1 ? Result.Success() : Result.Failure();
return response?.Body?.RegistreerInschrijvingResponse?.Repliek.Antwoorden.Antwoord.Inhoud.Resultaat.Value == Geslaagd ? Result.Success() : Result.Failure();
}
catch (Exception e)
{
Expand All @@ -67,6 +59,22 @@ public async Task<Result> RegistreerInschrijving(
}
}

private void LogIndienUitzonderingen(KboNummer kboNummer, UitzonderingType[]? uitzonderingen)
{
if (uitzonderingen is null || !uitzonderingen.Any())
return;

_logger.LogInformation(
"Uitzondering bij het aanroepen van de Magda GeefOnderneming service voor KBO-nummer {KboNummer}: " +
"\nFouten:\n'{Uitzonderingen}'" +
"\nWaarschuwingen:\n'{Waarschuwingen}'" +
"\nInformatie:\n'{Informatie}'",
kboNummer,
uitzonderingen.ConcatenateUitzonderingen(separator: "\n", UitzonderingTypeType.FOUT),
uitzonderingen.ConcatenateUitzonderingen(separator: "\n", UitzonderingTypeType.WAARSCHUWING),
uitzonderingen.ConcatenateUitzonderingen(separator: "\n", UitzonderingTypeType.INFORMATIE));
}

private static async Task<MagdaCallReference> CreateReference(
IMagdaCallReferenceRepository repository,
string initiator,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,15 @@ public async Task<Result> Handle(
var command = message.Command;
var duplicateResult = await CheckForDuplicate(command.KboNummer);

if (duplicateResult.IsFailure()) return duplicateResult;

var registreerInschrijvingResult = await RegistreerInschrijving(command.KboNummer, message.Metadata, cancellationToken);
if (duplicateResult.IsFailure())
return duplicateResult;

if (registreerInschrijvingResult.IsFailure()) throw new RegistreerInschrijvingKonNietVoltooidWorden();
_logger.LogInformation(LoggerMessages.KboRegistreerInschrijvingGeslaagd, command.KboNummer);
await RegistreerInschrijving(command.KboNummer, message.Metadata, cancellationToken);

var geefVerenigingResult = await _magdaGeefVerenigingService.GeefVereniging(command.KboNummer, message.Metadata, cancellationToken);

if (geefVerenigingResult.IsFailure()) throw new GeenGeldigeVerenigingInKbo();
if (geefVerenigingResult.IsFailure())
throw new GeenGeldigeVerenigingInKbo();

return await RegistreerVereniging(geefVerenigingResult, message.Metadata, cancellationToken);
}
Expand Down Expand Up @@ -79,23 +78,26 @@ private async Task<Result> RegistreerVereniging(
return Result.Success(CommandResult.Create(vCode, result));
}

private async Task<Result> RegistreerInschrijving(
KboNummer kboNumber,
private async Task RegistreerInschrijving(
KboNummer kboNummer,
CommandMetadata messageMetadata,
CancellationToken cancellationToken)
{
try
{
var result = await _magdaRegistreerInschrijvingService.RegistreerInschrijving(
kboNumber, messageMetadata, cancellationToken);
kboNummer, messageMetadata, cancellationToken);

if (result.IsFailure())
throw new RegistreerInschrijvingKonNietVoltooidWorden();

return result;
_logger.LogInformation(LoggerMessages.KboRegistreerInschrijvingGeslaagd, kboNummer);
}
catch (Exception ex)
{
_logger.LogError(ex, LoggerMessages.KboRegistreerInschrijvingNietGeslaagd, kboNumber);
_logger.LogError(ex, LoggerMessages.KboRegistreerInschrijvingNietGeslaagd, kboNummer);

return Result.Failure();
throw new RegistreerInschrijvingKonNietVoltooidWorden();
}
}
}

0 comments on commit cb4e25b

Please sign in to comment.