Skip to content

Commit 00b217a

Browse files
committed
fixing Hl7 configs
Signed-off-by: Neil South <[email protected]>
1 parent a6dce3a commit 00b217a

8 files changed

+161
-814
lines changed

src/Api/Hl7ApplicationConfigEntity.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,12 @@ public static implicit operator StringKeyValuePair(KeyValuePair<string, string>
128128
public static List<StringKeyValuePair> FromDictionary(Dictionary<string, string> dictionary) =>
129129
dictionary.Select(kvp => new StringKeyValuePair { Key = kvp.Key, Value = kvp.Value }).ToList();
130130

131+
public override bool Equals(object? obj) => Equals(obj as StringKeyValuePair);
132+
133+
public bool Equals(StringKeyValuePair? other) => other != null && Key == other.Key && Value == other.Value;
134+
135+
public override int GetHashCode() => HashCode.Combine(Key, Value);
136+
131137
}
132138

133139
public class DataKeyValuePair : IKeyValuePair<string, DataLinkType>
@@ -140,6 +146,12 @@ public static implicit operator DataKeyValuePair(KeyValuePair<string, DataLinkTy
140146
{
141147
return new DataKeyValuePair { Key = kvp.Key, Value = kvp.Value };
142148
}
149+
150+
public override bool Equals(object? obj) => Equals(obj as DataKeyValuePair);
151+
152+
public bool Equals(DataKeyValuePair? other) => other != null && Key == other.Key && Value == other.Value;
153+
154+
public override int GetHashCode() => HashCode.Combine(Key, Value);
143155
}
144156

145157
public interface IKeyValuePair<TKey, TValue>

src/Database/EntityFramework/Configuration/Hl7ApplicationConfigConfiguration.cs

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,50 @@ public void Configure(EntityTypeBuilder<Hl7ApplicationConfigEntity> builder)
3737
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
3838
};
3939

40-
builder.HasKey(j => j.Id);
40+
builder.HasKey(j => j.Name);
41+
builder.Property(j => j.SendingId).HasConversion(
42+
v => JsonSerializer.Serialize(v, jsonSerializerSettings),
43+
v => JsonSerializer.Deserialize<StringKeyValuePair>(v, jsonSerializerSettings)!)
44+
.IsRequired()
45+
.Metadata
46+
.SetValueComparer(
47+
new ValueComparer<StringKeyValuePair>(
48+
(c1, c2) => c1 == c2,
49+
c => c.GetHashCode(),
50+
c => c));
51+
52+
builder.Property(j => j.DataLink).HasConversion(
53+
v => JsonSerializer.Serialize(v, jsonSerializerSettings),
54+
v => JsonSerializer.Deserialize<DataKeyValuePair>(v, jsonSerializerSettings)!)
55+
.IsRequired()
56+
.Metadata
57+
.SetValueComparer(
58+
new ValueComparer<DataKeyValuePair>(
59+
(c1, c2) => c1 == c2,
60+
c => c.GetHashCode(),
61+
c => c));
62+
63+
builder.Property(j => j.DateTimeCreated).IsRequired();
4164
builder.Property(j => j.PlugInAssemblies)
4265
.HasConversion(
4366
v => JsonSerializer.Serialize(v, jsonSerializerSettings),
4467
v => JsonSerializer.Deserialize<List<string>>(v, jsonSerializerSettings)!)
4568
.Metadata.SetValueComparer(valueComparer);
4669

70+
builder.Property(j => j.DataMapping)
71+
.HasConversion(
72+
v => JsonSerializer.Serialize(v, jsonSerializerSettings),
73+
v => JsonSerializer.Deserialize<List<StringKeyValuePair>>(v, jsonSerializerSettings)!)
74+
.Metadata
75+
.SetValueComparer(
76+
new ValueComparer<List<StringKeyValuePair>>(
77+
(c1, c2) => c1!.SequenceEqual(c2!),
78+
c => c.Aggregate(0, (a, v) => HashCode.Combine(a, v.GetHashCode())),
79+
c => c.ToList()));
80+
4781
builder.HasIndex(p => p.Name, "idx_hl7_name").IsUnique();
82+
83+
builder.Ignore(p => p.Id);
4884
}
4985
}
5086
}

src/Database/EntityFramework/InformaticsGatewayContext.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
6060
modelBuilder.ApplyConfiguration(new StorageMetadataWrapperEntityConfiguration());
6161
modelBuilder.ApplyConfiguration(new DicomAssociationInfoConfiguration());
6262
modelBuilder.ApplyConfiguration(new VirtualApplicationEntityConfiguration());
63+
modelBuilder.ApplyConfiguration(new Hl7ApplicationConfigConfiguration());
6364
}
6465

6566
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

src/Database/EntityFramework/Migrations/20231123141944_addHl7Config.cs

Lines changed: 0 additions & 106 deletions
This file was deleted.

0 commit comments

Comments
 (0)