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 =
[