Skip to content

Commit

Permalink
feat: make explicit model for dataset alias
Browse files Browse the repository at this point in the history
  • Loading branch information
SondreJDigdir committed Jan 21, 2025
1 parent aa2fcd8 commit 807b240
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 13 deletions.
17 changes: 17 additions & 0 deletions Dan.Common/Models/DatasetAlias.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
namespace Dan.Common.Models;

/// <summary>
/// Model for alias for a dataset
/// </summary>
public class DatasetAlias
{
/// <summary>
/// Which service context this alias applies to
/// </summary>
public string ServiceContext { get; set; } = string.Empty;

/// <summary>
/// Alias name
/// </summary>
public string DatasetAliasName { get; set; } = string.Empty;
}
4 changes: 2 additions & 2 deletions Dan.Common/Models/EvidenceCode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -147,10 +147,10 @@ public class EvidenceCode
public string? License { get; set; }

/// <summary>
/// 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.
/// </summary>
[DataMember(Name = "datasetAliases")]
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public Dictionary<string,string>? DatasetAliases { get; set; }
public List<DatasetAlias>? DatasetAliases { get; set; }
}
6 changes: 3 additions & 3 deletions Dan.Core.UnitTest/AvailableEvidenceCodesServiceTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,10 @@ public class AvailableEvidenceCodesServiceTest
{
EvidenceCodeName = "ec3",
BelongsToServiceContexts = new List<string> { "sc1", "sc2" },
DatasetAliases = new Dictionary<string, string>
DatasetAliases = new List<DatasetAlias>
{
{"sc1", "a1"},
{"sc2", "a2"}
new() {ServiceContext = "sc1", DatasetAliasName = "a1"},
new() {ServiceContext = "sc2", DatasetAliasName = "a2"}
},
AuthorizationRequirements = new List<Requirement>
{
Expand Down
10 changes: 5 additions & 5 deletions Dan.Core/Services/AvailableEvidenceCodesService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public Dictionary<string, string> GetAliases()
{
foreach (var alias in aliasedEvidenceCode.DatasetAliases!)
{
aliases.Add(alias.Value, aliasedEvidenceCode.EvidenceCodeName);
aliases.Add(alias.DatasetAliasName, aliasedEvidenceCode.EvidenceCodeName);
}
}

Expand Down Expand Up @@ -270,15 +270,15 @@ private static List<EvidenceCode> SplitAliases(IEnumerable<EvidenceCode> 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);
Expand Down
6 changes: 3 additions & 3 deletions Dan.PluginTest/Metadata.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ public List<EvidenceCode> GetEvidenceCodes()
EvidenceCodeName = PluginConstants.DatasetOne,
EvidenceSource = PluginConstants.Source,
BelongsToServiceContexts = _serviceContexts,
DatasetAliases = new Dictionary<string, string>()
DatasetAliases = new List<DatasetAlias>()
{
{ DanTest, "AliasOne" },
{ AltinnStudioApps, "AliasTwo" },
new (){ ServiceContext = DanTest, DatasetAliasName = "AliasOne" },
new (){ ServiceContext = AltinnStudioApps, DatasetAliasName = "AliasTwo" },
},
Values =
[
Expand Down

0 comments on commit 807b240

Please sign in to comment.