From b4d618b7b059959ec15ccfe2d27a096d84e8f800 Mon Sep 17 00:00:00 2001 From: Sondre Jahrsengene Date: Thu, 25 Jun 2026 09:48:17 +0200 Subject: [PATCH 1/5] fix: only use id directly if scheme is null --- src/Dan.Plugin.Tilda/Functions/AuditCoordinationFunctions.cs | 2 +- src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Dan.Plugin.Tilda/Functions/AuditCoordinationFunctions.cs b/src/Dan.Plugin.Tilda/Functions/AuditCoordinationFunctions.cs index dd1de4b..399f084 100644 --- a/src/Dan.Plugin.Tilda/Functions/AuditCoordinationFunctions.cs +++ b/src/Dan.Plugin.Tilda/Functions/AuditCoordinationFunctions.cs @@ -54,7 +54,7 @@ public async Task TilsynskoordineringAlle( private async Task> GetEvidenceValuesTilsynskoordinering(EvidenceHarvesterRequest req, TildaParameters param) { - var subject = req.SubjectParty.Id; + var subject = req.SubjectParty.Scheme is null ? req.SubjectParty.Id : req.SubjectParty.NorwegianOrganizationNumber; bool npdid = subject.Length < 9; // Assume npdid if less than 9 digits var taskList = GetReportListTasks(req, param, npdid); diff --git a/src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs b/src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs index 1bad035..a5d5f1c 100644 --- a/src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs +++ b/src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs @@ -54,7 +54,7 @@ public async Task TilsynsrapportAlle( private async Task> GetEvidenceValuesTilsynsrapport(EvidenceHarvesterRequest req, TildaParameters param) { - var subject = req.SubjectParty.Id; + var subject = req.SubjectParty.Scheme is null ? req.SubjectParty.Id : req.SubjectParty.NorwegianOrganizationNumber; bool npdid = subject.Length < 9; // Assume npdid if less than 9 digits From 80ab8b6c6a166ec82ba88a07fe1bbfbf955c4ac9 Mon Sep 17 00:00:00 2001 From: Sondre Jahrsengene Date: Thu, 25 Jun 2026 10:26:11 +0200 Subject: [PATCH 2/5] set subject by checking scheme in tildadatasource --- src/Dan.Plugin.Tilda/TildaSources/TildaDataSource.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Dan.Plugin.Tilda/TildaSources/TildaDataSource.cs b/src/Dan.Plugin.Tilda/TildaSources/TildaDataSource.cs index cec912c..39a3695 100644 --- a/src/Dan.Plugin.Tilda/TildaSources/TildaDataSource.cs +++ b/src/Dan.Plugin.Tilda/TildaSources/TildaDataSource.cs @@ -83,7 +83,8 @@ public TildaDataSource() public virtual async Task GetAuditReportsAsync(EvidenceHarvesterRequest req, DateTime? fromDate, DateTime? toDate) { - var url = GetUri(BaseUri, AuditReportDatasetName, req.SubjectParty.Id, req.Requestor, fromDate, + var subject = req.SubjectParty.Scheme is null ? req.SubjectParty.Id : req.SubjectParty.NorwegianOrganizationNumber; + var url = GetUri(BaseUri, AuditReportDatasetName, subject, req.Requestor, fromDate, toDate); return await _client.GetData(url, OrganizationNumber, _logger, req.MPToken, req.Requestor); @@ -109,7 +110,8 @@ public virtual async Task GetDataTrendAllAsync(EvidenceHarveste public virtual async Task GetAuditCoordinationAsync(EvidenceHarvesterRequest req, DateTime? fromDate, DateTime? toDate) { - var url = GetUri(BaseUri, CoordinationDatasetName, req.SubjectParty.Id, req.Requestor, fromDate, toDate); + var subject = req.SubjectParty.Scheme is null ? req.SubjectParty.Id : req.SubjectParty.NorwegianOrganizationNumber; + var url = GetUri(BaseUri, CoordinationDatasetName, subject, req.Requestor, fromDate, toDate); return await _client.GetData(url, OrganizationNumber, _logger, req.MPToken, req.Requestor); } @@ -121,7 +123,8 @@ public virtual async Task GetAuditCoordinationAllAsync(Ev public virtual async Task GetNPDIDAuditReportsAsync(EvidenceHarvesterRequest req, DateTime? fromDate, DateTime? toDate) { - var url = GetUri(BaseUri, NpdidDatasetName, req.SubjectParty.Id, req.Requestor, fromDate, toDate, null); + var subject = req.SubjectParty.Scheme is null ? req.SubjectParty.Id : req.SubjectParty.NorwegianOrganizationNumber; + var url = GetUri(BaseUri, NpdidDatasetName, subject, req.Requestor, fromDate, toDate, null); return await _client.GetData(url, OrganizationNumber, _logger, req.MPToken, req.Requestor); } From 991362685a84f53e9d08171a9484c1247664a8ed Mon Sep 17 00:00:00 2001 From: Sondre Jahrsengene Date: Thu, 25 Jun 2026 10:55:17 +0200 Subject: [PATCH 3/5] remove mocking data from digdir tilsyn and make test tilsyn --- .../Digitaliseringsdirektoratet.cs | 183 ------------------ .../TildaSources/TestTilsyn.cs | 52 +++++ 2 files changed, 52 insertions(+), 183 deletions(-) create mode 100644 src/Dan.Plugin.Tilda/TildaSources/TestTilsyn.cs diff --git a/src/Dan.Plugin.Tilda/TildaSources/Digitaliseringsdirektoratet.cs b/src/Dan.Plugin.Tilda/TildaSources/Digitaliseringsdirektoratet.cs index 7b034b6..0287845 100644 --- a/src/Dan.Plugin.Tilda/TildaSources/Digitaliseringsdirektoratet.cs +++ b/src/Dan.Plugin.Tilda/TildaSources/Digitaliseringsdirektoratet.cs @@ -1,19 +1,8 @@ -using System; using System.Net.Http; -using System.Threading.Tasks; using Altinn.ApiClients.Maskinporten.Interfaces; -using Dan.Common.Models; using Dan.Plugin.Tilda.Config; -using Dan.Plugin.Tilda.Extensions; -using Dan.Plugin.Tilda.Models; using Dan.Plugin.Tilda.Utils; using Dan.Plugin.Tilda.Interfaces; -using Dan.Plugin.Tilda.Services; -using Dan.Tilda.Models.Audits.Alerts; -using Dan.Tilda.Models.Audits.Coordination; -using Dan.Tilda.Models.Audits.NPDID; -using Dan.Tilda.Models.Audits.Report; -using Dan.Tilda.Models.Audits.Trend; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Polly.Registry; @@ -32,8 +21,6 @@ public class Digitaliseringsdirektoratet : TildaDataSource, ITildaAlertMessage, public override bool TestOnly => true; - private readonly string _code; - public Digitaliseringsdirektoratet(IOptions settings, IHttpClientFactory httpClientFactory, ILoggerFactory loggerFactory, @@ -42,182 +29,12 @@ public Digitaliseringsdirektoratet(IOptions settings, IMaskinportenService maskinportenService) : base(settings, httpClientFactory, loggerFactory, pipelineProvider, uriFormatter, maskinportenService) { - _code = _settings.GetClassBaseCode(GetType().Name); } public Digitaliseringsdirektoratet() : base() { } - - public override async Task GetDataTrendAllAsync(EvidenceHarvesterRequest req, string month, string year, string filter) - { - return await GetDataTrendAsync(req, null, null); - } - - public override async Task GetAuditReportsAllAsync(EvidenceHarvesterRequest req, string month, string year, string filter) - { - return await GetAuditReportsAsync(req, null, null); - } - public override async Task GetAuditCoordinationAllAsync(EvidenceHarvesterRequest req, string month, string year, string filter) - { - - var resultList = new AuditCoordinationList(OrganizationNumber); - try - { - - var mock = new Mock(); - - resultList.AuditCoordinations.AddRange(await mock.GetMockCoordinationReports(req.OrganizationNumber, OrganizationNumber, ControlAgency)); - resultList.AuditCoordinations.AddRange(await mock.GetMockCoordinationReports("983175155", OrganizationNumber, ControlAgency)); - resultList.AuditCoordinations.AddRange(await mock.GetMockCoordinationReports("999601391", OrganizationNumber, ControlAgency)); - - if (resultList.AuditCoordinations.Count == 0) - { - resultList = Helpers.GetEmptyResponseCoordinationList(OrganizationNumber); - } - } - catch (Exception) - { - resultList = Helpers.GetEmptyFailedResponseCoordinationList(OrganizationNumber); - } - - return resultList; - - - } - - - public override async Task GetAlertMessagesAsync(EvidenceHarvesterRequest req, string month, string year, string identifier) - { - var url = GetUriAll(BaseUri, AlertDatasetName, req.Requestor, month, year, identifier); - var list = new AlertMessageList(OrganizationNumber); - - try - { - list.AlertMessages.AddRange(await new Mock().GetMockAlertMessages(req.OrganizationNumber, OrganizationNumber, ControlAgency, Guid.NewGuid().ToString())); - - if (list.AlertMessages.Count > 0) - list.SetStatusAndTextAndOwner("OK", Dan.Tilda.Models.Enums.StatusEnum.Ok, OrganizationNumber); - else - list.SetStatusAndTextAndOwner("Tomt", Dan.Tilda.Models.Enums.StatusEnum.NotFound, OrganizationNumber); - } catch (Exception ex) - { - list.SetStatusAndTextAndOwner(ex.Message, Dan.Tilda.Models.Enums.StatusEnum.Failed, OrganizationNumber); - } - - return list; - } - - public override async Task GetAuditReportsAsync(EvidenceHarvesterRequest req, DateTime? fromDate, DateTime? toDate) - { - var resultList = new AuditReportList(OrganizationNumber); - try - { - - var mock = new Mock(); - - resultList.AuditReports.AddRange(await mock.GetMockAuditReports(req.OrganizationNumber, OrganizationNumber, ControlAgency)); - resultList.AuditReports.AddRange(await mock.GetMockAuditReports(req.OrganizationNumber, OrganizationNumber, ControlAgency)); - - if (resultList.AuditReports.Count == 0) - { - resultList = Helpers.GetEmptyResponseAuditReportList(OrganizationNumber); - } - } - catch (Exception) - { - resultList = Helpers.GetEmptyFailedResponseAuditReportList(OrganizationNumber); - } - - return resultList; - } - - public override async Task GetDataTrendAsync(EvidenceHarvesterRequest req, DateTime? fromDate, DateTime? toDate) - { - var resultList = new TrendReportList(OrganizationNumber); - try - { - - var mock = new Mock(); - - resultList.TrendReports.AddRange(await mock.GetMockTrendReports(req.OrganizationNumber, OrganizationNumber, ControlAgency)); - resultList.TrendReports.AddRange(await mock.GetMockTrendReports(req.OrganizationNumber, OrganizationNumber, ControlAgency)); - - if (resultList.TrendReports.Count == 0) - { - resultList = Helpers.GetEmptyResponseTrendReportList(OrganizationNumber); - } - } - catch (Exception) - { - resultList = Helpers.GetEmptyFailedResponseTrendReportList(OrganizationNumber); - } - - return resultList; - } - - public override async Task GetPdfReport(EvidenceHarvesterRequest req, string internTilsynsId) - { - var url = "https://www.orimi.com/pdf-test.pdf"; - - return await _client.GetPdfreport(url, OrganizationNumber, _logger, req.MPToken, req.Requestor); - } - - public override async Task GetAuditCoordinationAsync(EvidenceHarvesterRequest req, DateTime? fromDate, DateTime? toDate) - { - var resultList = new AuditCoordinationList(OrganizationNumber); - try - { - - var mock = new Mock(); - - resultList.AuditCoordinations.AddRange(await mock.GetMockCoordinationReports(req.OrganizationNumber, OrganizationNumber, ControlAgency)); - resultList.AuditCoordinations.AddRange(await mock.GetMockCoordinationReports(req.OrganizationNumber, OrganizationNumber, ControlAgency)); - - if (resultList.AuditCoordinations.Count == 0) - { - resultList = Helpers.GetEmptyResponseCoordinationList(OrganizationNumber); - } - } - catch (Exception) - { - resultList = Helpers.GetEmptyFailedResponseCoordinationList(OrganizationNumber); - } - - return resultList; - } - - public override async Task GetNPDIDAuditReportsAsync(EvidenceHarvesterRequest req, DateTime? fromDate, DateTime? toDate) - { - var url = $"{BaseUri}/npdid/{req.OrganizationNumber}"; - - var resultList = new NpdidAuditReportList(OrganizationNumber); - try - { - - var mock = new Mock(); - - resultList.AuditReports.AddRange(await mock.GetMockNpdidAuditReports(req.OrganizationNumber, OrganizationNumber, ControlAgency, "342342")); - - if (resultList.AuditReports.Count == 0) - { - resultList = Helpers.GetEmptyResponseNPDIDAuditReportList(OrganizationNumber); - } - } - catch (Exception) - { - resultList = Helpers.GetEmptyFailedResponseNPDIDAuditReportList(OrganizationNumber); - } - - return resultList; - } - - protected override string GetAlertUri(string from) => $"{BaseUri}/{MtamDatasetName}?fromDate={from}&code={_code}"; - protected override string GetSingleAlertUri(string id, string requestor) => - $"{BaseUri}/{MtamDatasetName}/{id}?requestor={requestor}&code={_code}"; - - protected override string PostAlertUri() => $"{BaseUri}/{MtamDatasetName}?code={_code}"; } } diff --git a/src/Dan.Plugin.Tilda/TildaSources/TestTilsyn.cs b/src/Dan.Plugin.Tilda/TildaSources/TestTilsyn.cs new file mode 100644 index 0000000..725a67d --- /dev/null +++ b/src/Dan.Plugin.Tilda/TildaSources/TestTilsyn.cs @@ -0,0 +1,52 @@ +using Altinn.ApiClients.Maskinporten.Interfaces; +using Dan.Plugin.Tilda.Config; +using Dan.Plugin.Tilda.Interfaces; +using Dan.Plugin.Tilda.Utils; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Polly.Registry; +using System.Net.Http; + +namespace Dan.Plugin.Tilda.TildaSources +{ + public class TestTilsyn : TildaDataSource, ITildaAlertMessage + { + private const string orgNo = "111111111"; + private const string controlAgency = "TestTilsyn"; + + public override string OrganizationNumber + { + get => orgNo; + } + + public override string ControlAgency + { + get => controlAgency; + } + + public override bool TestOnly => true; + private readonly string _code; + + public TestTilsyn(IOptions settings, + IHttpClientFactory httpClientFactory, + ILoggerFactory loggerFactory, + ResiliencePipelineProvider pipelineProvider, + IUriFormatter uriFormatter, + IMaskinportenService maskinportenService) : + base(settings, httpClientFactory, loggerFactory, pipelineProvider, uriFormatter, maskinportenService) + { + _code = _settings.GetClassBaseCode(GetType().Name); + } + + public TestTilsyn() : base() + { + + } + + protected override string GetAlertUri(string from) => $"{BaseUri}/{MtamDatasetName}?fromDate={from}&code={_code}"; + protected override string GetSingleAlertUri(string id, string requestor) => + $"{BaseUri}/{MtamDatasetName}/{id}?requestor={requestor}&code={_code}"; + + protected override string PostAlertUri() => $"{BaseUri}/{MtamDatasetName}?code={_code}"; + } +} From 1bc3fc883ff434733120698303767d850eac87ad Mon Sep 17 00:00:00 2001 From: Sondre Jahrsengene Date: Thu, 25 Jun 2026 12:23:01 +0200 Subject: [PATCH 4/5] handle cases where no reports are found --- .../Functions/AuditCoordinationFunctions.cs | 14 +++++++++++++- .../Functions/AuditReportFunctions.cs | 14 ++++++++++++-- .../TildaSources/Digitaliseringsdirektoratet.cs | 2 +- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/Dan.Plugin.Tilda/Functions/AuditCoordinationFunctions.cs b/src/Dan.Plugin.Tilda/Functions/AuditCoordinationFunctions.cs index 399f084..c0f1921 100644 --- a/src/Dan.Plugin.Tilda/Functions/AuditCoordinationFunctions.cs +++ b/src/Dan.Plugin.Tilda/Functions/AuditCoordinationFunctions.cs @@ -8,6 +8,7 @@ using Dan.Plugin.Tilda.Services; using Dan.Plugin.Tilda.Utils; using Dan.Tilda.Models.Audits.Coordination; +using Dan.Tilda.Models.Audits.Report; using Dan.Tilda.Models.Entities; using Dan.Tilda.Models.Enums; using Microsoft.Azure.Functions.Worker; @@ -74,6 +75,18 @@ StatusEnum.Failed or list.Add(values); } + var ecb = new EvidenceBuilder(metadata, "TildaTilsynskoordineringv1"); + + // If no one supports NPDID, we can basically just return an empty response this early + // as there is no use in looking more up without even having a valid org number + if (npdid && list.Count == 0) + { + ecb.AddEvidenceValue("enhetsinformasjon", null, "Enhetsregisteret", false); + ecb.AddEvidenceValue($"tilsynskoordineringer", JsonConvert.SerializeObject(new AuditCoordinationList(), Formatting.None), null, false); + var emptyResult = ecb.GetEvidenceValues(); + return emptyResult; + } + // need to get org number from control object if subject is npdid var orgs = new List(); var orgNumber = npdid ? @@ -92,7 +105,6 @@ StatusEnum.Failed or orgInfoUnavailable = brResult.OrgInfoUnavailable; } - var ecb = new EvidenceBuilder(metadata, "TildaTilsynskoordineringv1"); foreach (var unit in orgs) ecb.AddEvidenceValue("enhetsinformasjon", JsonConvert.SerializeObject(unit), "Enhetsregisteret", false); diff --git a/src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs b/src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs index a5d5f1c..714c9be 100644 --- a/src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs +++ b/src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs @@ -75,6 +75,18 @@ StatusEnum.Failed or list.Add(values); } + var ecb = new EvidenceBuilder(metadata, "TildaTilsynsrapportv1"); + + // If no one supports NPDID, we can basically just return an empty response this early + // as there is no use in looking more up without even having a valid org number + if (npdid && list.Count == 0) + { + ecb.AddEvidenceValue("enhetsinformasjon", null, "Enhetsregisteret", false); + ecb.AddEvidenceValue($"tilsynsrapporter", JsonConvert.SerializeObject(new AuditReportList(), Formatting.None), null, false); + var emptyResult = ecb.GetEvidenceValues(); + return emptyResult; + } + // need to get org number from control object if subject is npdid var orgs = new List(); var orgNumber = npdid ? @@ -93,8 +105,6 @@ StatusEnum.Failed or orgInfoUnavailable = brResult.OrgInfoUnavailable; } - var ecb = new EvidenceBuilder(metadata, "TildaTilsynsrapportv1"); - foreach (var unit in orgs) { ecb.AddEvidenceValue("enhetsinformasjon", JsonConvert.SerializeObject(unit), "Enhetsregisteret", false); diff --git a/src/Dan.Plugin.Tilda/TildaSources/Digitaliseringsdirektoratet.cs b/src/Dan.Plugin.Tilda/TildaSources/Digitaliseringsdirektoratet.cs index 0287845..8b4c389 100644 --- a/src/Dan.Plugin.Tilda/TildaSources/Digitaliseringsdirektoratet.cs +++ b/src/Dan.Plugin.Tilda/TildaSources/Digitaliseringsdirektoratet.cs @@ -9,7 +9,7 @@ namespace Dan.Plugin.Tilda.TildaSources { - public class Digitaliseringsdirektoratet : TildaDataSource, ITildaAlertMessage, ITildaPdfReport, ITildaNPDIDAuditReports//, ITildaAuditReports, ITildaAuditCoordination, ITildaTrendReports, ITildaTrendReportsAll, ITildaAuditCoordinationAll, ITildaAuditReportsAll, ITildaAlertMessage + public class Digitaliseringsdirektoratet : TildaDataSource //ITildaAlertMessage, ITildaPdfReport, ITildaNPDIDAuditReports//, ITildaAuditReports, ITildaAuditCoordination, ITildaTrendReports, ITildaTrendReportsAll, ITildaAuditCoordinationAll, ITildaAuditReportsAll, ITildaAlertMessage { private const string orgNo = "991825827"; From b9bbb4ed06deda17cce8f61ce10dd2a0a520edaf Mon Sep 17 00:00:00 2001 From: Sondre Jahrsengene Date: Thu, 25 Jun 2026 13:02:44 +0200 Subject: [PATCH 5/5] centralise logic for getting tilda subject --- .../Extensions/EvidenceHarvesterRequestExtension.cs | 9 +++++++++ .../Functions/AuditCoordinationFunctions.cs | 2 +- src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs | 2 +- src/Dan.Plugin.Tilda/TildaSources/TildaDataSource.cs | 9 +++------ 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/Dan.Plugin.Tilda/Extensions/EvidenceHarvesterRequestExtension.cs b/src/Dan.Plugin.Tilda/Extensions/EvidenceHarvesterRequestExtension.cs index d175a5e..b7b4aab 100644 --- a/src/Dan.Plugin.Tilda/Extensions/EvidenceHarvesterRequestExtension.cs +++ b/src/Dan.Plugin.Tilda/Extensions/EvidenceHarvesterRequestExtension.cs @@ -39,6 +39,15 @@ public static TildaParameters GetValuesFromParameters(this EvidenceHarvesterRequ return new TildaParameters(fromDateTime, toDateTime, npdid, false, sourceFilter, identifier, filter, year, month, postcode, municipalityNumber, nace); } + + // Since Tilda supports NPDID which doesnt follow a strict scheme, we can get requests where scheme is null + // and that is okay, we just use the id. If scheme is set, then we don't want to use Id, as the Id will be + // formatted like 'scheme:id', so in that case we just pick the organisationnumber. Tilda doesnt support + // norwegian ssn (or any individual person) as subject, so don't need to account for that. + public static string GetTildaSubject(this EvidenceHarvesterRequest req) + { + return req.SubjectParty.Scheme is null ? req.SubjectParty.Id : req.SubjectParty.NorwegianOrganizationNumber; + } } } diff --git a/src/Dan.Plugin.Tilda/Functions/AuditCoordinationFunctions.cs b/src/Dan.Plugin.Tilda/Functions/AuditCoordinationFunctions.cs index c0f1921..4e60f6a 100644 --- a/src/Dan.Plugin.Tilda/Functions/AuditCoordinationFunctions.cs +++ b/src/Dan.Plugin.Tilda/Functions/AuditCoordinationFunctions.cs @@ -55,7 +55,7 @@ public async Task TilsynskoordineringAlle( private async Task> GetEvidenceValuesTilsynskoordinering(EvidenceHarvesterRequest req, TildaParameters param) { - var subject = req.SubjectParty.Scheme is null ? req.SubjectParty.Id : req.SubjectParty.NorwegianOrganizationNumber; + var subject = req.GetTildaSubject(); bool npdid = subject.Length < 9; // Assume npdid if less than 9 digits var taskList = GetReportListTasks(req, param, npdid); diff --git a/src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs b/src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs index 714c9be..27af34b 100644 --- a/src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs +++ b/src/Dan.Plugin.Tilda/Functions/AuditReportFunctions.cs @@ -54,7 +54,7 @@ public async Task TilsynsrapportAlle( private async Task> GetEvidenceValuesTilsynsrapport(EvidenceHarvesterRequest req, TildaParameters param) { - var subject = req.SubjectParty.Scheme is null ? req.SubjectParty.Id : req.SubjectParty.NorwegianOrganizationNumber; + var subject = req.GetTildaSubject(); bool npdid = subject.Length < 9; // Assume npdid if less than 9 digits diff --git a/src/Dan.Plugin.Tilda/TildaSources/TildaDataSource.cs b/src/Dan.Plugin.Tilda/TildaSources/TildaDataSource.cs index 39a3695..8e63742 100644 --- a/src/Dan.Plugin.Tilda/TildaSources/TildaDataSource.cs +++ b/src/Dan.Plugin.Tilda/TildaSources/TildaDataSource.cs @@ -83,8 +83,7 @@ public TildaDataSource() public virtual async Task GetAuditReportsAsync(EvidenceHarvesterRequest req, DateTime? fromDate, DateTime? toDate) { - var subject = req.SubjectParty.Scheme is null ? req.SubjectParty.Id : req.SubjectParty.NorwegianOrganizationNumber; - var url = GetUri(BaseUri, AuditReportDatasetName, subject, req.Requestor, fromDate, + var url = GetUri(BaseUri, AuditReportDatasetName, req.GetTildaSubject(), req.Requestor, fromDate, toDate); return await _client.GetData(url, OrganizationNumber, _logger, req.MPToken, req.Requestor); @@ -110,8 +109,7 @@ public virtual async Task GetDataTrendAllAsync(EvidenceHarveste public virtual async Task GetAuditCoordinationAsync(EvidenceHarvesterRequest req, DateTime? fromDate, DateTime? toDate) { - var subject = req.SubjectParty.Scheme is null ? req.SubjectParty.Id : req.SubjectParty.NorwegianOrganizationNumber; - var url = GetUri(BaseUri, CoordinationDatasetName, subject, req.Requestor, fromDate, toDate); + var url = GetUri(BaseUri, CoordinationDatasetName, req.GetTildaSubject(), req.Requestor, fromDate, toDate); return await _client.GetData(url, OrganizationNumber, _logger, req.MPToken, req.Requestor); } @@ -123,8 +121,7 @@ public virtual async Task GetAuditCoordinationAllAsync(Ev public virtual async Task GetNPDIDAuditReportsAsync(EvidenceHarvesterRequest req, DateTime? fromDate, DateTime? toDate) { - var subject = req.SubjectParty.Scheme is null ? req.SubjectParty.Id : req.SubjectParty.NorwegianOrganizationNumber; - var url = GetUri(BaseUri, NpdidDatasetName, subject, req.Requestor, fromDate, toDate, null); + var url = GetUri(BaseUri, NpdidDatasetName, req.GetTildaSubject(), req.Requestor, fromDate, toDate, null); return await _client.GetData(url, OrganizationNumber, _logger, req.MPToken, req.Requestor); }