diff --git a/dotnet-source/ks.fiks.io.arkivintegrasjon.common/ks.fiks.io.arkivintegrasjon.common.csproj b/dotnet-source/ks.fiks.io.arkivintegrasjon.common/ks.fiks.io.arkivintegrasjon.common.csproj
index 5f41115..92a97dd 100644
--- a/dotnet-source/ks.fiks.io.arkivintegrasjon.common/ks.fiks.io.arkivintegrasjon.common.csproj
+++ b/dotnet-source/ks.fiks.io.arkivintegrasjon.common/ks.fiks.io.arkivintegrasjon.common.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/ArkivSimulator.cs b/dotnet-source/ks.fiks.io.arkivsystem.sample/ArkivSimulator.cs
index 00da6c4..0cdbd5a 100644
--- a/dotnet-source/ks.fiks.io.arkivsystem.sample/ArkivSimulator.cs
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/ArkivSimulator.cs
@@ -14,7 +14,6 @@
using ks.fiks.io.arkivsystem.sample.Generators;
using ks.fiks.io.arkivsystem.sample.Handlers;
using ks.fiks.io.arkivsystem.sample.Models;
-using ks.fiks.io.arkivsystem.sample.Storage;
using KS.Fiks.IO.Client;
using KS.Fiks.IO.Client.Models;
using Microsoft.Extensions.Hosting;
@@ -30,26 +29,24 @@ public class ArkivSimulator : BackgroundService
private FiksIOClient client;
private readonly AppSettings appSettings;
private static readonly ILogger Log = Serilog.Log.ForContext(MethodBase.GetCurrentMethod()?.DeclaringType);
- public static SizedDictionary _arkivmeldingCache;
- public static Dictionary _arkivmeldingProtokollValidatorStorage;
- private JournalpostHentHandler _journalpostHentHandler;
- private MappeHentHandler _mappeHentHandler;
- private SokHandler _sokHandler;
- private ArkivmeldingHandler _arkivmeldingHandler;
- private ArkivmeldingOppdaterHandler _arkivmeldingOppdaterHandler;
+ public static Dictionary ArkivmeldingProtokollValidatorStorage;
+ private readonly JournalpostHentHandler _journalpostHentHandler;
+ private readonly MappeHentHandler _mappeHentHandler;
+ private readonly SokHandler _sokHandler;
+ private readonly ArkivmeldingHandler _arkivmeldingHandler;
+ private readonly ArkivmeldingOppdaterHandler _arkivmeldingOppdaterHandler;
- public ArkivSimulator(AppSettings appSettings)
+ public ArkivSimulator(AppSettings appSettings, JournalpostHentHandler journalpostHentHandler, MappeHentHandler mappeHentHandler, SokHandler sokHandler, ArkivmeldingHandler arkivmeldingHandler, ArkivmeldingOppdaterHandler arkivmeldingOppdaterHandler)
{
this.appSettings = appSettings;
Log.Information("Setter opp FIKS integrasjon for arkivsystem");
client = FiksIOClientBuilder.CreateFiksIoClient(appSettings);
- _arkivmeldingCache = new SizedDictionary(100);
- _arkivmeldingProtokollValidatorStorage = new Dictionary();
- _journalpostHentHandler = new JournalpostHentHandler();
- _mappeHentHandler = new MappeHentHandler();
- _sokHandler = new SokHandler();
- _arkivmeldingHandler = new ArkivmeldingHandler();
- _arkivmeldingOppdaterHandler = new ArkivmeldingOppdaterHandler();
+ ArkivmeldingProtokollValidatorStorage = new Dictionary();
+ _journalpostHentHandler = journalpostHentHandler;
+ _mappeHentHandler = mappeHentHandler;
+ _sokHandler = sokHandler;
+ _arkivmeldingHandler = arkivmeldingHandler;
+ _arkivmeldingOppdaterHandler = arkivmeldingOppdaterHandler;
InitArkivmeldingStorage();
}
@@ -67,7 +64,7 @@ private void InitArkivmeldingStorage()
using TextReader reader = new StringReader(xml);
var arkivmelding = (Arkivmelding)serializer.Deserialize(reader);
var key = directoryName.Split(Path.DirectorySeparatorChar)[1];
- _arkivmeldingProtokollValidatorStorage.Add(key, arkivmelding); // Innkommende meldingId er key
+ ArkivmeldingProtokollValidatorStorage.Add(key, arkivmelding); // Innkommende meldingId er key
}
}
@@ -108,11 +105,11 @@ private void OnReceivedMelding(object sender, MottattMeldingArgs mottatt)
private void HandleInnsynMelding(MottattMeldingArgs mottatt)
{
var payloads = new List();
- Melding melding;
+ var meldinger = new List();
try
{
- melding = mottatt.Melding.MeldingType switch
+ meldinger = mottatt.Melding.MeldingType switch
{
FiksArkivMeldingtype.Sok => _sokHandler.HandleMelding(mottatt),
FiksArkivMeldingtype.JournalpostHent => _journalpostHentHandler.HandleMelding(mottatt),
@@ -122,25 +119,33 @@ private void HandleInnsynMelding(MottattMeldingArgs mottatt)
}
catch (Exception e)
{
- melding = new Melding
+ meldinger.Add(new Melding
{
ResultatMelding =
FeilmeldingGenerator.CreateUgyldigforespoerselMelding(
$"Klarte ikke håndtere innkommende melding. Feilmelding: {e.Message}"),
FileName = "feilmelding.xml",
MeldingsType = FiksArkivMeldingtype.Ugyldigforespørsel,
- };
+ });
}
-
- payloads.Add(new StringPayload(ArkivmeldingSerializeHelper.Serialize(melding.ResultatMelding),
- melding.FileName));
- mottatt.SvarSender.Ack(); // Ack message to remove it from the queue
+ foreach (var melding in meldinger)
+ {
+ if (melding.ResultatMelding != null)
+ {
+ payloads.Add(new StringPayload(ArkivmeldingSerializeHelper.Serialize(melding.ResultatMelding),
+ melding.FileName));
+ }
+
+ mottatt.SvarSender.Ack(); // Ack message to remove it from the queue
- var sendtMelding = mottatt.SvarSender.Svar(melding.MeldingsType, payloads).Result;
- Log.Information("Svarmelding meldingId {MeldingId}, meldingType {MeldingType} sendt", sendtMelding.MeldingId,
- sendtMelding.MeldingType);
- Log.Information("Melding er ferdig håndtert i arkiv");
+ var sendtMelding = mottatt.SvarSender.Svar(melding.MeldingsType, payloads).Result;
+ Log.Information("Svarmelding meldingId {MeldingId}, meldingType {MeldingType} sendt",
+ sendtMelding.MeldingId,
+ sendtMelding.MeldingType);
+ }
+
+ Log.Information($"Innkommende arkivmelding med id {mottatt.Melding.MeldingId} er ferdig håndtert i arkiv");
}
private void HandleArkiveringMelding(MottattMeldingArgs mottatt)
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/Generators/SokGenerator.cs b/dotnet-source/ks.fiks.io.arkivsystem.sample/Generators/SokGenerator.cs
index d5ace65..0eb238d 100644
--- a/dotnet-source/ks.fiks.io.arkivsystem.sample/Generators/SokGenerator.cs
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/Generators/SokGenerator.cs
@@ -1,3 +1,5 @@
+using System.Collections.Generic;
+using KS.Fiks.Arkiv.Models.V1.Arkivering.Arkivmelding;
using KS.Fiks.Arkiv.Models.V1.Arkivstruktur;
using KS.Fiks.Arkiv.Models.V1.Innsyn.Sok;
using KS.Fiks.Arkiv.Models.V1.Meldingstyper;
@@ -8,38 +10,55 @@ namespace ks.fiks.io.arkivsystem.sample.Generators
{
public class SokGenerator
{
- public static Melding CreateSokResponseMelding(Sok sok) =>
- sok.ResponsType switch
+
+ private SokeresultatGenerator _sokeresultatGenerator;
+ public SokGenerator(SokeresultatGenerator sokeresultatGenerator)
+ {
+ _sokeresultatGenerator = sokeresultatGenerator;
+ }
+
+ public List CreateSokResponseMelding(Sok sok, List lagretArkivmeldinger)
+ {
+ var meldinger = new List();
+
+ switch (sok.ResponsType)
{
- ResponsType.Minimum =>
- new Melding
+ case ResponsType.Minimum:
+ meldinger.Add(new Melding
{
FileName = "resultat.xml",
MeldingsType = FiksArkivMeldingtype.SokResultatMinimum,
- ResultatMelding = SokeresultatGenerator.CreateSokeResultatMinimum(sok.Respons)
- },
- ResponsType.Noekler =>
- new Melding
+ ResultatMelding = _sokeresultatGenerator.CreateSokeResultatMinimum(sok)
+ });
+ break;
+ case ResponsType.Noekler:
+ ;
+ meldinger.Add(new Melding
{
FileName = "resultat.xml",
MeldingsType = FiksArkivMeldingtype.SokResultatNoekler,
- ResultatMelding = SokeresultatGenerator.CreateSokeResultatNoekler(),
- },
- ResponsType.Utvidet =>
- new Melding
+ ResultatMelding = _sokeresultatGenerator.CreateSokeResultatNoekler(),
+ });
+ break;
+ case ResponsType.Utvidet:
+ meldinger.Add(new Melding
{
FileName = "resultat.xml",
MeldingsType = FiksArkivMeldingtype.SokResultatUtvidet,
- ResultatMelding = SokeresultatGenerator.CreateSokeResultatUtvidet(sok.Respons)
- },
- _ =>
- new Melding
+ ResultatMelding = _sokeresultatGenerator.CreateSokeResultatUtvidet(sok, lagretArkivmeldinger)
+ });
+ break;
+ default:
+ meldinger.Add(new Melding
{
FileName = "resultat.xml",
MeldingsType = FiksArkivMeldingtype.SokResultatMinimum,
- ResultatMelding = SokeresultatGenerator.CreateSokeResultatMinimum(sok.Respons),
- }
- };
+ ResultatMelding = _sokeresultatGenerator.CreateSokeResultatMinimum(sok),
+ });
+ break;
+ }
+ return meldinger;
+ }
}
}
\ No newline at end of file
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/Generators/SokeresultatGenerator.cs b/dotnet-source/ks.fiks.io.arkivsystem.sample/Generators/SokeresultatGenerator.cs
index 7b5c8c1..16416f1 100644
--- a/dotnet-source/ks.fiks.io.arkivsystem.sample/Generators/SokeresultatGenerator.cs
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/Generators/SokeresultatGenerator.cs
@@ -1,16 +1,22 @@
using System;
+using System.Collections;
+using System.Collections.Generic;
+using KS.Fiks.Arkiv.Models.V1.Arkivering.Arkivmelding;
using KS.Fiks.Arkiv.Models.V1.Arkivstruktur;
using KS.Fiks.Arkiv.Models.V1.Arkivstruktur.Minimum;
using KS.Fiks.Arkiv.Models.V1.Arkivstruktur.Noekler;
using KS.Fiks.Arkiv.Models.V1.Innsyn.Sok;
using KS.Fiks.Arkiv.Models.V1.Metadatakatalog;
using EksternNoekkel = KS.Fiks.Arkiv.Models.V1.Arkivstruktur.EksternNoekkel;
+using Journalpost = KS.Fiks.Arkiv.Models.V1.Arkivstruktur.Journalpost;
+using Mappe = KS.Fiks.Arkiv.Models.V1.Arkivstruktur.Mappe;
+using Saksmappe = KS.Fiks.Arkiv.Models.V1.Arkivstruktur.Saksmappe;
namespace ks.fiks.io.arkivsystem.sample.Helpers
{
public class SokeresultatGenerator
{
- public static SokeresultatMinimum CreateSokeResultatMinimum(Respons sokRespons)
+ public SokeresultatMinimum CreateSokeResultatMinimum(Sok sok)
{
var sokeResultatMinimum = new SokeresultatMinimum()
{
@@ -23,7 +29,7 @@ public static SokeresultatMinimum CreateSokeResultatMinimum(Respons sokRespons)
};
- switch (sokRespons)
+ switch (sok.Respons)
{
case Respons.Mappe:
AddMappeResultatMinimum(sokeResultatMinimum);
@@ -35,7 +41,7 @@ public static SokeresultatMinimum CreateSokeResultatMinimum(Respons sokRespons)
return sokeResultatMinimum;
}
- private static void AddSaksmappeResultatMinimum(SokeresultatMinimum sokeresultatMinimum)
+ private void AddSaksmappeResultatMinimum(SokeresultatMinimum sokeresultatMinimum)
{
sokeresultatMinimum.ResultatListe.Add(
new ResultatMinimum()
@@ -77,7 +83,7 @@ private static void AddSaksmappeResultatMinimum(SokeresultatMinimum sokeresultat
});
}
- private static void AddMappeResultatMinimum(SokeresultatMinimum sokeresultatMinimum)
+ private void AddMappeResultatMinimum(SokeresultatMinimum sokeresultatMinimum)
{
sokeresultatMinimum.ResultatListe.Add(
new ResultatMinimum()
@@ -101,7 +107,7 @@ private static void AddMappeResultatMinimum(SokeresultatMinimum sokeresultatMini
});
}
- public static Sokeresultat CreateSokeResultatUtvidet(Respons sokRespons)
+ public Sokeresultat CreateSokeResultatUtvidet(Sok sok, List lagretArkivmeldinger)
{
var sokeResultatUtvidet = new Sokeresultat()
{
@@ -113,19 +119,82 @@ public static Sokeresultat CreateSokeResultatUtvidet(Respons sokRespons)
Tidspunkt = DateTime.Now
};
- switch (sokRespons)
+ switch (sok.Respons)
{
case Respons.Mappe:
- AddMappeResultatUtvidet(sokeResultatUtvidet);
+ AddMappeResultatUtvidet(sokeResultatUtvidet, lagretArkivmeldinger);
break;
case Respons.Saksmappe:
- AddSaksmappeResultatUtvidet(sokeResultatUtvidet);
+ AddSaksmappeResultatUtvidet(sokeResultatUtvidet, lagretArkivmeldinger);
+ break;
+ case Respons.Journalpost:
+ AddJournalpostResultatUtvidet(sok, sokeResultatUtvidet, lagretArkivmeldinger);
break;
}
return sokeResultatUtvidet;
}
- private static void AddSaksmappeResultatUtvidet(Sokeresultat sokeResultatUtvidet)
+ private void AddJournalpostResultatUtvidet(Sok sok, Sokeresultat sokeResultatUtvidet,
+ List lagretArkivmeldinger)
+ {
+ var count = 0;
+ if (lagretArkivmeldinger != null && lagretArkivmeldinger.Count > 0)
+ {
+ foreach (var parameter in sok.Parameter)
+ {
+ if (parameter.Felt == SokFelt.RegistreringTittel)
+ {
+ foreach (var lagretArkivmelding in lagretArkivmeldinger)
+ {
+ foreach (var registrering in lagretArkivmelding.Registrering)
+ {
+ if (parameter.Operator == OperatorType.Equal)
+ {
+ if (registrering.Tittel.ToLower().Contains(parameter.Parameterverdier.Stringvalues[0].ToLower().Replace("*", string.Empty)))
+ {
+ // Funnet!
+ Console.Out.WriteLineAsync("FUNNET!!!!!!!!!!!!!!!!!!!!");
+ count++;
+ var jp = (KS.Fiks.Arkiv.Models.V1.Arkivering.Arkivmelding.Journalpost) registrering;
+ sokeResultatUtvidet.ResultatListe.Add(new Resultat()
+ {
+ Journalpost = new Journalpost()
+ {
+ Arkivdel = jp.Arkivdel,
+ Tittel = jp.Tittel,
+ OpprettetDato = jp.OpprettetDato,
+ OpprettetAv = jp.OpprettetAv,
+ SystemID = jp.SystemID,
+ ArkivertAv = jp.ArkivertAv,
+ ArkivertDato = jp.ArkivertDato,
+ AntallVedlegg = jp.AntallVedlegg,
+ Journalstatus = new Journalstatus() { Beskrivelse = "", KodeProperty = ""},
+ Journalposttype = new Journalposttype() {Beskrivelse = "", KodeProperty = ""},
+ Journalpostnummer = jp.Journalpostnummer ?? "1",
+ Journalaar = jp.Journalaar ?? DateTime.Now.Year.ToString(),
+ Journalsekvensnummer = jp.Journalsekvensnummer ?? "1",
+ Journaldato = jp.Journaldato,
+ ReferanseEksternNoekkel = new EksternNoekkel()
+ {
+ Fagsystem = jp.ReferanseEksternNoekkel.Fagsystem,
+ Noekkel = jp.ReferanseEksternNoekkel.Noekkel
+ }
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ sokeResultatUtvidet.Count = count;
+ }
+
+
+ private void AddSaksmappeResultatUtvidet(Sokeresultat sokeResultatUtvidet,
+ List lagretArkivmeldinger)
{
sokeResultatUtvidet.ResultatListe.Add(
new Resultat()
@@ -176,7 +245,7 @@ private static void AddSaksmappeResultatUtvidet(Sokeresultat sokeResultatUtvidet
});
}
- private static void AddMappeResultatUtvidet(Sokeresultat sokeResultatUtvidet)
+ private void AddMappeResultatUtvidet(Sokeresultat sokeResultatUtvidet, List lagretArkivmeldinger)
{
sokeResultatUtvidet.ResultatListe.Add(
new Resultat()
@@ -209,7 +278,7 @@ private static void AddMappeResultatUtvidet(Sokeresultat sokeResultatUtvidet)
});
}
- public static SokeresultatNoekler CreateSokeResultatNoekler()
+ public SokeresultatNoekler CreateSokeResultatNoekler()
{
var sokeResultatNoekler = new SokeresultatNoekler()
{
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/ArkivmeldingHandler.cs b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/ArkivmeldingHandler.cs
index dbe7c4d..33aef54 100644
--- a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/ArkivmeldingHandler.cs
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/ArkivmeldingHandler.cs
@@ -7,14 +7,19 @@
using KS.Fiks.Arkiv.Models.V1.Meldingstyper;
using ks.fiks.io.arkivsystem.sample.Generators;
using ks.fiks.io.arkivsystem.sample.Models;
+using ks.fiks.io.arkivsystem.sample.Storage;
using KS.Fiks.IO.Client.Models;
using Serilog;
namespace ks.fiks.io.arkivsystem.sample.Handlers
{
- public class ArkivmeldingHandler : BaseHandler
+ public class ArkivmeldingHandler : BaseHandler, IMeldingHandler
{
private static readonly ILogger Log = Serilog.Log.ForContext(MethodBase.GetCurrentMethod()?.DeclaringType);
+
+ public ArkivmeldingHandler(IArkivmeldingCache arkivmeldingCache) : base(arkivmeldingCache)
+ {
+ }
private Arkivmelding GetPayload(MottattMeldingArgs mottatt, XmlSchemaSet xmlSchemaSet,
out bool xmlValidationErrorOccured, out List> validationResult)
@@ -78,37 +83,52 @@ public List HandleMelding(MottattMeldingArgs mottatt)
// Lagre arkivmelding i "cache" hvis det er en testSessionId i headere
if (mottatt.Melding.Headere.TryGetValue(ArkivSimulator.TestSessionIdHeader, out var testSessionId))
{
- if (ArkivSimulator._arkivmeldingCache.ContainsKey(testSessionId))
+ if (_arkivmeldingCache.HasArkivmeldinger(testSessionId))
{
- Arkivmelding lagretArkvivmelding;
- ArkivSimulator._arkivmeldingCache.TryGetValue(testSessionId, out lagretArkvivmelding);
-
- // Registrering som skal lagres?
- if (arkivmelding.Registrering.Count >= 0)
+ var found = false;
+ var lagretArkvivmeldinger = _arkivmeldingCache.GetAll(testSessionId);
+ foreach (var lagretArkivmelding in lagretArkvivmeldinger)
{
- foreach (var registrering in arkivmelding.Registrering)
+ // Registrering som skal lagres?
+ if (arkivmelding.Registrering.Count >= 0)
{
- if (registrering.ReferanseForelderMappe != null)
+ foreach (var registrering in arkivmelding.Registrering)
{
- foreach (var lagretMappe in lagretArkvivmelding.Mappe)
+ if (registrering.ReferanseForelderMappe != null)
{
- //
- if(registrering.ReferanseForelderMappe.SystemID != null && lagretMappe.SystemID.Value == registrering.ReferanseForelderMappe.SystemID.Value)
- {
- lagretMappe.Registrering.Add(registrering);
- }
- else if(registrering.ReferanseForelderMappe.ReferanseEksternNoekkel != null && registrering.ReferanseForelderMappe.ReferanseEksternNoekkel.Fagsystem == lagretMappe.ReferanseEksternNoekkel.Fagsystem && registrering.ReferanseForelderMappe.ReferanseEksternNoekkel.Noekkel == lagretMappe.ReferanseEksternNoekkel.Noekkel)
+ foreach (var lagretMappe in lagretArkivmelding.Mappe)
{
- lagretMappe.Registrering.Add(registrering);
+ //
+ if (registrering.ReferanseForelderMappe.SystemID != null &&
+ lagretMappe.SystemID.Value ==
+ registrering.ReferanseForelderMappe.SystemID.Value)
+ {
+ lagretMappe.Registrering.Add(registrering);
+ found = true;
+ }
+ else if (registrering.ReferanseForelderMappe.ReferanseEksternNoekkel != null &&
+ registrering.ReferanseForelderMappe.ReferanseEksternNoekkel
+ .Fagsystem == lagretMappe.ReferanseEksternNoekkel.Fagsystem &&
+ registrering.ReferanseForelderMappe.ReferanseEksternNoekkel.Noekkel ==
+ lagretMappe.ReferanseEksternNoekkel.Noekkel)
+ {
+ lagretMappe.Registrering.Add(registrering);
+ found = true;
+ }
}
}
}
}
}
+
+ if (!found)
+ {
+ _arkivmeldingCache.Add(testSessionId, arkivmelding);
+ }
}
else
{
- ArkivSimulator._arkivmeldingCache.Add(testSessionId, arkivmelding);
+ _arkivmeldingCache.Add(testSessionId, arkivmelding);
}
}
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/ArkivmeldingOppdaterHandler.cs b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/ArkivmeldingOppdaterHandler.cs
index fc53486..276caeb 100644
--- a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/ArkivmeldingOppdaterHandler.cs
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/ArkivmeldingOppdaterHandler.cs
@@ -9,15 +9,20 @@
using KS.Fiks.Arkiv.Models.V1.Meldingstyper;
using ks.fiks.io.arkivsystem.sample.Generators;
using ks.fiks.io.arkivsystem.sample.Models;
+using ks.fiks.io.arkivsystem.sample.Storage;
using KS.Fiks.IO.Client.Models;
using Serilog;
namespace ks.fiks.io.arkivsystem.sample.Handlers
{
- public class ArkivmeldingOppdaterHandler : BaseHandler
+ public class ArkivmeldingOppdaterHandler : BaseHandler, IMeldingHandler
{
private static readonly ILogger Log = Serilog.Log.ForContext(MethodBase.GetCurrentMethod()?.DeclaringType);
+ public ArkivmeldingOppdaterHandler(IArkivmeldingCache arkivmeldingCache) : base(arkivmeldingCache)
+ {
+ }
+
public List HandleMelding(MottattMeldingArgs mottatt)
{
var meldinger = new List();
@@ -56,32 +61,35 @@ public List HandleMelding(MottattMeldingArgs mottatt)
MeldingsType = FiksArkivMeldingtype.ArkivmeldingOppdaterMottatt,
});
- var lagretArkivmelding = TryGetLagretArkivmelding(mottatt);
+ var lagretArkivmeldinger = TryGetLagretArkivmeldinger(mottatt);
- if(lagretArkivmelding != null) {
- try
+ if(lagretArkivmeldinger != null) {
+ foreach (var lagretArkivmelding in lagretArkivmeldinger)
{
- if (arkivmeldingOppdatering.RegistreringOppdateringer.Count > 0)
+ try
{
- meldinger.AddRange(OppdaterRegistreringer(arkivmeldingOppdatering, lagretArkivmelding));
+ if (arkivmeldingOppdatering.RegistreringOppdateringer.Count > 0)
+ {
+ meldinger.AddRange(OppdaterRegistreringer(arkivmeldingOppdatering, lagretArkivmelding));
+ }
+ else if (arkivmeldingOppdatering.MappeOppdateringer.Count > 0) // Mappe oppdatering
+ {
+ meldinger.AddRange(OppdaterMapper(arkivmeldingOppdatering, lagretArkivmelding));
+ }
}
- else if (arkivmeldingOppdatering.MappeOppdateringer.Count > 0) // Mappe oppdatering
+ catch (Exception e)
{
- meldinger.AddRange(OppdaterMapper(arkivmeldingOppdatering, lagretArkivmelding));
+ meldinger.Add(new Melding
+ {
+ ResultatMelding =
+ FeilmeldingGenerator.CreateServerFeilMelding(
+ $"Noe gikk galt: {e.Message}"),
+ FileName = "feilmelding.xml",
+ MeldingsType = FiksArkivMeldingtype.Serverfeil,
+ });
+ return meldinger;
}
}
- catch (Exception e)
- {
- meldinger.Add(new Melding
- {
- ResultatMelding =
- FeilmeldingGenerator.CreateServerFeilMelding(
- $"Noe gikk galt: {e.Message}"),
- FileName = "feilmelding.xml",
- MeldingsType = FiksArkivMeldingtype.Serverfeil,
- });
- return meldinger;
- }
}
else
{
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/BaseHandler.cs b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/BaseHandler.cs
index e9f74aa..73eaea2 100644
--- a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/BaseHandler.cs
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/BaseHandler.cs
@@ -9,6 +9,7 @@
using KS.Fiks.Arkiv.Models.V1.Innsyn.Hent.Mappe;
using KS.Fiks.Arkiv.Models.V1.Metadatakatalog;
using KS.Fiks.ASiC_E;
+using ks.fiks.io.arkivsystem.sample.Storage;
using KS.Fiks.IO.Client.Models;
using Serilog;
using EksternNoekkel = KS.Fiks.Arkiv.Models.V1.Arkivstruktur.EksternNoekkel;
@@ -19,9 +20,11 @@ public class BaseHandler
{
private readonly ILogger Log = Serilog.Log.ForContext(MethodBase.GetCurrentMethod()?.DeclaringType);
protected readonly XmlSchemaSet XmlSchemaSet;
+ protected IArkivmeldingCache _arkivmeldingCache;
- protected BaseHandler()
+ protected BaseHandler(IArkivmeldingCache arkivmeldingCache)
{
+ _arkivmeldingCache = arkivmeldingCache;
XmlSchemaSet = new XmlSchemaSet();
var arkivModelsAssembly = Assembly.Load("KS.Fiks.Arkiv.Models.V1");
@@ -137,19 +140,23 @@ protected string GetPayloadAsString(MottattMeldingArgs mottatt, XmlSchemaSet xml
return string.Empty;
}
- protected Arkivmelding TryGetLagretArkivmelding(MottattMeldingArgs mottatt)
+ protected List TryGetLagretArkivmeldinger(MottattMeldingArgs mottatt)
{
-
// Er det en testSession fra integrasjonstester?
if (mottatt.Melding.Headere.TryGetValue(ArkivSimulator.TestSessionIdHeader, out var testSessionId))
{
- return ArkivSimulator._arkivmeldingCache.ContainsKey(testSessionId) ? ArkivSimulator._arkivmeldingCache[testSessionId] : null;
+ return _arkivmeldingCache.HasArkivmeldinger(testSessionId) ? _arkivmeldingCache.GetAll(testSessionId) : null;
}
// Er det test fra protokoll-validator?
if (mottatt.Melding.Headere.TryGetValue(ArkivSimulator.ValidatorTestNameHeader, out var testName))
{
- return ArkivSimulator._arkivmeldingProtokollValidatorStorage.ContainsKey(testName) ? ArkivSimulator._arkivmeldingProtokollValidatorStorage[testName] : null;
+ if (ArkivSimulator.ArkivmeldingProtokollValidatorStorage.ContainsKey(testName))
+ {
+ var liste = new List();
+ liste.Add(ArkivSimulator.ArkivmeldingProtokollValidatorStorage[testName]);
+ return liste;
+ }
}
return null;
@@ -161,13 +168,13 @@ protected Arkivmelding AreEqual(MottattMeldingArgs mottatt)
// Er det en testSession fra integrasjonstester?
if (mottatt.Melding.Headere.TryGetValue(ArkivSimulator.TestSessionIdHeader, out var testSessionId))
{
- return ArkivSimulator._arkivmeldingCache.ContainsKey(testSessionId) ? ArkivSimulator._arkivmeldingCache[testSessionId] : null;
+ return _arkivmeldingCache.HasArkivmeldinger(testSessionId) ? _arkivmeldingCache.GetFirst(testSessionId) : null;
}
// Er det test fra protokoll-validator?
if (mottatt.Melding.Headere.TryGetValue(ArkivSimulator.ValidatorTestNameHeader, out var testName))
{
- return ArkivSimulator._arkivmeldingProtokollValidatorStorage.ContainsKey(testName) ? ArkivSimulator._arkivmeldingProtokollValidatorStorage[testName] : null;
+ return ArkivSimulator.ArkivmeldingProtokollValidatorStorage.ContainsKey(testName) ? ArkivSimulator.ArkivmeldingProtokollValidatorStorage[testName] : null;
}
return null;
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/IMeldingHandler.cs b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/IMeldingHandler.cs
index f31fb0c..a99a578 100644
--- a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/IMeldingHandler.cs
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/IMeldingHandler.cs
@@ -1,3 +1,4 @@
+using System.Collections.Generic;
using ks.fiks.io.arkivsystem.sample.Models;
using KS.Fiks.IO.Client.Models;
@@ -5,6 +6,6 @@ namespace ks.fiks.io.arkivsystem.sample.Handlers
{
public interface IMeldingHandler
{
- public Melding HandleMelding(MottattMeldingArgs mottattMeldingArgs);
+ public List HandleMelding(MottattMeldingArgs mottattMeldingArgs);
}
}
\ No newline at end of file
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/JournalpostHentHandler.cs b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/JournalpostHentHandler.cs
index 92e36dc..947d5b2 100644
--- a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/JournalpostHentHandler.cs
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/JournalpostHentHandler.cs
@@ -9,14 +9,19 @@
using KS.Fiks.Arkiv.Models.V1.Meldingstyper;
using ks.fiks.io.arkivsystem.sample.Generators;
using ks.fiks.io.arkivsystem.sample.Models;
+using ks.fiks.io.arkivsystem.sample.Storage;
using KS.Fiks.IO.Client.Models;
using Serilog;
namespace ks.fiks.io.arkivsystem.sample.Handlers
{
- public class JournalpostHentHandler : BaseHandler
+ public class JournalpostHentHandler : BaseHandler, IMeldingHandler
{
private static readonly ILogger Log = Serilog.Log.ForContext(MethodBase.GetCurrentMethod()?.DeclaringType);
+
+ public JournalpostHentHandler(IArkivmeldingCache arkivmeldingCache) : base(arkivmeldingCache)
+ {
+ }
private JournalpostHent GetPayload(MottattMeldingArgs mottatt, XmlSchemaSet xmlSchemaSet,
out bool xmlValidationErrorOccured, out List> validationResult)
@@ -40,26 +45,37 @@ private JournalpostHent GetPayload(MottattMeldingArgs mottatt, XmlSchemaSet xmlS
return null;
}
- private bool HarJournalpost(Arkivmelding lagretArkivmelding, JournalpostHent journalpostHent)
+ private Arkivmelding GetArkivmeldingMedJournalpost(List lagretArkivmeldinger, JournalpostHent journalpostHent)
{
- if (lagretArkivmelding == null)
+ if (lagretArkivmeldinger == null)
{
- return false;
+ return null;
}
- if (lagretArkivmelding.Mappe.Count >= 0)
+
+ foreach (var lagretArkivmelding in lagretArkivmeldinger)
{
- foreach (var mappe in lagretArkivmelding.Mappe)
+ if (lagretArkivmelding.Mappe.Count >= 0)
{
- foreach (var registrering in mappe.Registrering)
+ foreach (var mappe in lagretArkivmelding.Mappe)
{
- if (AreEqual(registrering, journalpostHent.ReferanseEksternNoekkel, journalpostHent.SystemID))
+ foreach (var registrering in mappe.Registrering)
{
- return true;
+ if (AreEqual(registrering, journalpostHent.ReferanseEksternNoekkel,
+ journalpostHent.SystemID))
+ {
+ return lagretArkivmelding;
+ }
}
}
}
+
+ if(lagretArkivmelding.Registrering.OfType().Any(registrering =>
+ AreEqual(registrering, journalpostHent.ReferanseEksternNoekkel, journalpostHent.SystemID)))
+ {
+ return lagretArkivmelding;
+ }
}
- return lagretArkivmelding.Registrering.OfType().Any(registrering => AreEqual(registrering, journalpostHent.ReferanseEksternNoekkel, journalpostHent.SystemID));
+ return null;
}
private Journalpost GetJournalpost(Arkivmelding lagretArkivmelding, JournalpostHent journalpostHent)
@@ -90,42 +106,49 @@ private Journalpost GetJournalpost(Arkivmelding lagretArkivmelding, JournalpostH
return null;
}
- public Melding HandleMelding(MottattMeldingArgs mottatt)
+ public List HandleMelding(MottattMeldingArgs mottatt)
{
+ var meldinger = new List();
+
var hentMelding = GetPayload(mottatt, XmlSchemaSet,
out var xmlValidationErrorOccured, out var validationResult);
if (xmlValidationErrorOccured)
{
- return new Melding
+ meldinger.Add(new Melding
{
ResultatMelding = FeilmeldingGenerator.CreateUgyldigforespoerselMelding(validationResult),
FileName = "feilmelding.xml",
MeldingsType = FiksArkivMeldingtype.Ugyldigforespørsel,
- };
+ });
+ return meldinger;
}
// Forsøk å hente arkivmelding fra lokal lagring
- var lagretArkivmelding = TryGetLagretArkivmelding(mottatt);
+ var lagretArkivmeldinger = TryGetLagretArkivmeldinger(mottatt);
+ var lagretArkivmelding = GetArkivmeldingMedJournalpost(lagretArkivmeldinger, hentMelding);
- if (!HarJournalpost(lagretArkivmelding, hentMelding))
+ if (lagretArkivmelding == null)
{
- return new Melding
+ meldinger.Add(new Melding
{
ResultatMelding = FeilmeldingGenerator.CreateIkkefunnetMelding("Kunne ikke finne noen journalpost som tilsvarer det som er etterspurt i hentmelding"),
FileName = "feilmelding.xml",
MeldingsType = FiksArkivMeldingtype.Ikkefunnet,
- };
+ });
+ return meldinger;
}
- return new Melding
+ meldinger.Add(new Melding
{
ResultatMelding = lagretArkivmelding == null
? JournalpostHentResultatGenerator.Create(hentMelding)
: JournalpostHentResultatGenerator.Create(hentMelding, JournalpostHentResultatGenerator.CreateHentJournalpostFraArkivmeldingJournalpost(GetJournalpost(lagretArkivmelding, hentMelding))),
FileName = "resultat.xml",
MeldingsType = FiksArkivMeldingtype.JournalpostHentResultat
- };
+ });
+
+ return meldinger;
}
}
}
\ No newline at end of file
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/MappeHentHandler.cs b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/MappeHentHandler.cs
index 1a7246b..f505c5a 100644
--- a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/MappeHentHandler.cs
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/MappeHentHandler.cs
@@ -8,15 +8,20 @@
using KS.Fiks.Arkiv.Models.V1.Meldingstyper;
using ks.fiks.io.arkivsystem.sample.Generators;
using ks.fiks.io.arkivsystem.sample.Models;
+using ks.fiks.io.arkivsystem.sample.Storage;
using KS.Fiks.IO.Client.Models;
using Serilog;
namespace ks.fiks.io.arkivsystem.sample.Handlers
{
- public class MappeHentHandler : BaseHandler
+ public class MappeHentHandler : BaseHandler, IMeldingHandler
{
private static readonly ILogger Log = Serilog.Log.ForContext(MethodBase.GetCurrentMethod()?.DeclaringType);
+ public MappeHentHandler(IArkivmeldingCache arkivmeldingCache) : base(arkivmeldingCache)
+ {
+ }
+
private MappeHent GetPayload(MottattMeldingArgs mottatt, XmlSchemaSet xmlSchemaSet,
out bool xmlValidationErrorOccured, out List> validationResult)
{
@@ -39,62 +44,73 @@ private MappeHent GetPayload(MottattMeldingArgs mottatt, XmlSchemaSet xmlSchemaS
return null;
}
- public Melding HandleMelding(MottattMeldingArgs mottatt)
+ public List HandleMelding(MottattMeldingArgs mottatt)
{
+ var meldinger = new List();
+
var hentMelding = GetPayload(mottatt, XmlSchemaSet,
out var xmlValidationErrorOccured, out var validationResult);
if (xmlValidationErrorOccured)
{
- return new Melding
+ meldinger.Add(new Melding
{
ResultatMelding = FeilmeldingGenerator.CreateUgyldigforespoerselMelding(validationResult),
FileName = "feilmelding.xml",
MeldingsType = FiksArkivMeldingtype.Ugyldigforespørsel,
- };
+ });
+ return meldinger;
}
// Forsøk å hente arkivmelding fra lokal lagring
- var lagretArkivmelding = TryGetLagretArkivmelding(mottatt);
+ var lagretArkivmeldinger = TryGetLagretArkivmeldinger(mottatt);
+ var lagretArkivmelding = GetArkivmeldingMedMappe(lagretArkivmeldinger, hentMelding);
- if (!HarMappe(lagretArkivmelding, hentMelding))
+ if (lagretArkivmelding == null)
{
- return new Melding
+ meldinger.Add(new Melding
{
ResultatMelding = FeilmeldingGenerator.CreateIkkefunnetMelding("Kunne ikke finne noen mappe som tilsvarer det som er etterspurt i hentmelding"),
FileName = "feilmelding.xml",
MeldingsType = FiksArkivMeldingtype.Ikkefunnet,
- };
+ });
+ return meldinger;
}
- return new Melding
+ meldinger.Add(new Melding
{
ResultatMelding = lagretArkivmelding == null
? MappeHentResultatGenerator.Create(hentMelding)
: MappeHentResultatGenerator.CreateFromCache(hentMelding, lagretArkivmelding),
FileName = "resultat.xml",
MeldingsType = FiksArkivMeldingtype.MappeHentResultat
- };
+ });
+ return meldinger;
}
- private bool HarMappe(Arkivmelding lagretArkivmelding, MappeHent mappeHent)
+ private Arkivmelding GetArkivmeldingMedMappe(List lagretArkivmeldinger, MappeHent mappeHent)
{
- if (lagretArkivmelding == null)
+ if (lagretArkivmeldinger == null)
{
- return false;
+ return null;
}
- if (lagretArkivmelding.Mappe.Count >= 0)
+
+ foreach (var lagretArkivmelding in lagretArkivmeldinger)
{
- foreach (var mappe in lagretArkivmelding.Mappe)
+ if (lagretArkivmelding.Mappe.Count >= 0)
{
- if (AreEqual(mappe, mappeHent))
+ foreach (var mappe in lagretArkivmelding.Mappe)
{
- return true;
+ if (AreEqual(mappe, mappeHent))
+ {
+ return lagretArkivmelding;
+ }
+
}
-
}
}
- return false;
+
+ return null;
}
}
}
\ No newline at end of file
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/SokHandler.cs b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/SokHandler.cs
index 08b4b2a..84837c2 100644
--- a/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/SokHandler.cs
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/Handlers/SokHandler.cs
@@ -7,17 +7,21 @@
using KS.Fiks.Arkiv.Models.V1.Meldingstyper;
using ks.fiks.io.arkivsystem.sample.Generators;
using ks.fiks.io.arkivsystem.sample.Models;
+using ks.fiks.io.arkivsystem.sample.Storage;
using KS.Fiks.IO.Client.Models;
using Serilog;
namespace ks.fiks.io.arkivsystem.sample.Handlers
{
- public class SokHandler : BaseHandler
+ public class SokHandler : BaseHandler, IMeldingHandler
{
private static readonly ILogger Log = Serilog.Log.ForContext(MethodBase.GetCurrentMethod()?.DeclaringType);
+
+ private SokGenerator _sokGenerator;
- public SokHandler()
+ public SokHandler(IArkivmeldingCache arkivmeldingCache, SokGenerator sokGenerator) : base(arkivmeldingCache)
{
+ this._sokGenerator = sokGenerator;
}
private Sok GetPayload(MottattMeldingArgs mottatt, XmlSchemaSet xmlSchemaSet,
@@ -42,22 +46,27 @@ private Sok GetPayload(MottattMeldingArgs mottatt, XmlSchemaSet xmlSchemaSet,
return null;
}
- public Melding HandleMelding(MottattMeldingArgs mottatt)
+ public List HandleMelding(MottattMeldingArgs mottatt)
{
+ var meldinger = new List();
+
var sok = GetPayload(mottatt, XmlSchemaSet, out var xmlValidationErrorOccured,
out var validationResult);
-
+
if (xmlValidationErrorOccured)
{
- return new Melding
+ meldinger.Add(new Melding
{
ResultatMelding = FeilmeldingGenerator.CreateUgyldigforespoerselMelding(validationResult),
FileName = "feilmelding.xml",
MeldingsType = FiksArkivMeldingtype.Ugyldigforespørsel,
- };
+ });
+ return meldinger;
}
+
+ var lagretArkivmeldinger = TryGetLagretArkivmeldinger(mottatt);
- return SokGenerator.CreateSokResponseMelding(sok);
+ return _sokGenerator.CreateSokResponseMelding(sok, lagretArkivmeldinger);
}
}
}
\ No newline at end of file
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/Program.cs b/dotnet-source/ks.fiks.io.arkivsystem.sample/Program.cs
index 5e93628..c2d57f4 100644
--- a/dotnet-source/ks.fiks.io.arkivsystem.sample/Program.cs
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/Program.cs
@@ -1,7 +1,12 @@
using System;
using System.IO;
using System.Threading.Tasks;
+using KS.Fiks.Arkiv.Models.V1.Innsyn.Sok;
using ks.fiks.io.arkivintegrasjon.common.AppSettings;
+using ks.fiks.io.arkivsystem.sample.Generators;
+using ks.fiks.io.arkivsystem.sample.Handlers;
+using ks.fiks.io.arkivsystem.sample.Helpers;
+using ks.fiks.io.arkivsystem.sample.Storage;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
@@ -30,7 +35,15 @@ static async Task Main(string[] args)
.ConfigureServices((hostContext, services) =>
{
services.AddSingleton(AppSettingsBuilder.CreateAppSettings(hostContext.Configuration));
- services.AddHostedService();
+ services.AddHostedService()
+ .AddScoped()
+ .AddScoped()
+ .AddScoped()
+ .AddScoped()
+ .AddScoped()
+ .AddScoped()
+ .AddScoped()
+ .AddScoped();
})
.RunConsoleAsync();
}
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/Storage/ArkivmeldingCache.cs b/dotnet-source/ks.fiks.io.arkivsystem.sample/Storage/ArkivmeldingCache.cs
new file mode 100644
index 0000000..8eb2db3
--- /dev/null
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/Storage/ArkivmeldingCache.cs
@@ -0,0 +1,40 @@
+using System.Collections.Generic;
+using System.Linq;
+using KS.Fiks.Arkiv.Models.V1.Arkivering.Arkivmelding;
+
+namespace ks.fiks.io.arkivsystem.sample.Storage;
+
+public class ArkivmeldingCache : IArkivmeldingCache
+{
+ private static SizedDictionary> Cache;
+
+ public ArkivmeldingCache()
+ {
+ Cache = new SizedDictionary>(100);
+ }
+
+ public void Add(string key, Arkivmelding arkivmelding)
+ {
+ if (!Cache.ContainsKey(key))
+ {
+ Cache.Add(key, new List());
+ }
+
+ Cache[key].Add(arkivmelding);
+ }
+
+ public Arkivmelding GetFirst(string key)
+ {
+ return Cache[key].First();
+ }
+
+ public List GetAll(string key)
+ {
+ return Cache[key];
+ }
+
+ public bool HasArkivmeldinger(string key)
+ {
+ return Cache.ContainsKey(key);
+ }
+}
\ No newline at end of file
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/Storage/IArkivmeldingCache.cs b/dotnet-source/ks.fiks.io.arkivsystem.sample/Storage/IArkivmeldingCache.cs
new file mode 100644
index 0000000..c03cb53
--- /dev/null
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/Storage/IArkivmeldingCache.cs
@@ -0,0 +1,13 @@
+using System.Collections.Generic;
+using KS.Fiks.Arkiv.Models.V1.Arkivering.Arkivmelding;
+
+namespace ks.fiks.io.arkivsystem.sample.Storage;
+
+public interface IArkivmeldingCache
+{
+ void Add(string key, Arkivmelding arkivmelding);
+ Arkivmelding GetFirst(string key);
+ List GetAll(string key);
+ bool HasArkivmeldinger(string key);
+ //bool TryGetValue(string key, out Arkivmelding lagretArkvivmelding);
+}
\ No newline at end of file
diff --git a/dotnet-source/ks.fiks.io.arkivsystem.sample/ks.fiks.io.arkivsystem.sample.csproj b/dotnet-source/ks.fiks.io.arkivsystem.sample/ks.fiks.io.arkivsystem.sample.csproj
index befe3f8..5c34bd3 100644
--- a/dotnet-source/ks.fiks.io.arkivsystem.sample/ks.fiks.io.arkivsystem.sample.csproj
+++ b/dotnet-source/ks.fiks.io.arkivsystem.sample/ks.fiks.io.arkivsystem.sample.csproj
@@ -23,7 +23,7 @@
-
+
diff --git a/dotnet-source/ks.fiks.io.fagsystem.arkiv.sample/ks.fiks.io.fagsystem.arkiv.sample.csproj b/dotnet-source/ks.fiks.io.fagsystem.arkiv.sample/ks.fiks.io.fagsystem.arkiv.sample.csproj
index 344819b..31f13b9 100644
--- a/dotnet-source/ks.fiks.io.fagsystem.arkiv.sample/ks.fiks.io.fagsystem.arkiv.sample.csproj
+++ b/dotnet-source/ks.fiks.io.fagsystem.arkiv.sample/ks.fiks.io.fagsystem.arkiv.sample.csproj
@@ -26,7 +26,7 @@
-
+