diff --git a/Dan.Common/Models/DatasetAlias.cs b/Dan.Common/Models/DatasetAlias.cs new file mode 100644 index 0000000..399f51e --- /dev/null +++ b/Dan.Common/Models/DatasetAlias.cs @@ -0,0 +1,17 @@ +namespace Dan.Common.Models; + +/// +/// Model for alias for a dataset +/// +public class DatasetAlias +{ + /// + /// Which service context this alias applies to + /// + public string ServiceContext { get; set; } = string.Empty; + + /// + /// Alias name + /// + public string DatasetAliasName { get; set; } = string.Empty; +} \ No newline at end of file diff --git a/Dan.Common/Models/EvidenceCode.cs b/Dan.Common/Models/EvidenceCode.cs index 3cb217e..4b33f24 100644 --- a/Dan.Common/Models/EvidenceCode.cs +++ b/Dan.Common/Models/EvidenceCode.cs @@ -147,10 +147,10 @@ public class EvidenceCode public string? License { get; set; } /// - /// Optional setting for aliases. Key is service context, value is Dataset name + /// Optional setting for aliases /// Allows for the same dataset to be shared between service contexts with different names. /// [DataMember(Name = "datasetAliases")] [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] - public Dictionary? DatasetAliases { get; set; } + public List? DatasetAliases { get; set; } } \ No newline at end of file diff --git a/Dan.Core.UnitTest/AvailableEvidenceCodesServiceTest.cs b/Dan.Core.UnitTest/AvailableEvidenceCodesServiceTest.cs index 4bf0786..135c637 100644 --- a/Dan.Core.UnitTest/AvailableEvidenceCodesServiceTest.cs +++ b/Dan.Core.UnitTest/AvailableEvidenceCodesServiceTest.cs @@ -61,10 +61,10 @@ public class AvailableEvidenceCodesServiceTest { EvidenceCodeName = "ec3", BelongsToServiceContexts = new List { "sc1", "sc2" }, - DatasetAliases = new Dictionary + DatasetAliases = new List { - {"sc1", "a1"}, - {"sc2", "a2"} + new() {ServiceContext = "sc1", DatasetAliasName = "a1"}, + new() {ServiceContext = "sc2", DatasetAliasName = "a2"} }, AuthorizationRequirements = new List { diff --git a/Dan.Core/Services/AvailableEvidenceCodesService.cs b/Dan.Core/Services/AvailableEvidenceCodesService.cs index d3ffc39..3cba656 100644 --- a/Dan.Core/Services/AvailableEvidenceCodesService.cs +++ b/Dan.Core/Services/AvailableEvidenceCodesService.cs @@ -105,7 +105,7 @@ public Dictionary GetAliases() { foreach (var alias in aliasedEvidenceCode.DatasetAliases!) { - aliases.Add(alias.Value, aliasedEvidenceCode.EvidenceCodeName); + aliases.Add(alias.DatasetAliasName, aliasedEvidenceCode.EvidenceCodeName); } } @@ -270,15 +270,15 @@ private static List SplitAliases(IEnumerable evidenc foreach (var alias in evidenceCode.DatasetAliases!) { var aliasedEvidenceCode = evidenceCode.DeepCopy(); - aliasedEvidenceCode.ServiceContext = alias.Key; - aliasedEvidenceCode.BelongsToServiceContexts = [alias.Key]; - aliasedEvidenceCode.EvidenceCodeName = alias.Value; + aliasedEvidenceCode.ServiceContext = alias.ServiceContext; + aliasedEvidenceCode.BelongsToServiceContexts = [alias.ServiceContext]; + aliasedEvidenceCode.EvidenceCodeName = alias.DatasetAliasName; aliasedEvidenceCode.DatasetAliases = null; aliasedEvidenceCode.AuthorizationRequirements = aliasedEvidenceCode .AuthorizationRequirements .Where(a => a.AppliesToServiceContext.Count == 0 || - a.AppliesToServiceContext.Contains(alias.Key)) + a.AppliesToServiceContext.Contains(alias.ServiceContext)) .ToList(); splitEvidenceCodes.Add(aliasedEvidenceCode); diff --git a/Dan.PluginTest/Metadata.cs b/Dan.PluginTest/Metadata.cs index 418421c..09926e0 100644 --- a/Dan.PluginTest/Metadata.cs +++ b/Dan.PluginTest/Metadata.cs @@ -36,10 +36,10 @@ public List GetEvidenceCodes() EvidenceCodeName = PluginConstants.DatasetOne, EvidenceSource = PluginConstants.Source, BelongsToServiceContexts = _serviceContexts, - DatasetAliases = new Dictionary() + DatasetAliases = new List() { - { DanTest, "AliasOne" }, - { AltinnStudioApps, "AliasTwo" }, + new (){ ServiceContext = DanTest, DatasetAliasName = "AliasOne" }, + new (){ ServiceContext = AltinnStudioApps, DatasetAliasName = "AliasTwo" }, }, Values = [