Skip to content

Commit 576b084

Browse files
committed
image annotation mapping
1 parent 0e499e2 commit 576b084

File tree

4 files changed

+50
-10
lines changed

4 files changed

+50
-10
lines changed

OpenAPI/LearningHub.Nhs.OpenApi.Repositories/EntityFramework/ServiceMappings.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ namespace LearningHub.Nhs.OpenApi.Repositories.EntityFramework
1010
using LearningHub.Nhs.OpenApi.Repositories.Map.Maintenance;
1111
using LearningHub.Nhs.OpenApi.Repositories.Map.Messaging;
1212
using LearningHub.Nhs.OpenApi.Repositories.Map.Resources;
13+
using LearningHub.Nhs.OpenApi.Repositories.Map.Resources.Blocks;
1314
using Microsoft.EntityFrameworkCore;
1415
using Microsoft.Extensions.Configuration;
1516
using Microsoft.Extensions.DependencyInjection;
@@ -79,6 +80,7 @@ public static void AddLearningHubMappings(this IServiceCollection services, ICon
7980
services.AddSingleton<IEntityTypeMap, PageSectionMap>();
8081
services.AddSingleton<IEntityTypeMap, PageSectionDetailMap>();
8182
services.AddSingleton<IEntityTypeMap, ImageAssetMap>();
83+
services.AddSingleton<IEntityTypeMap, ImageCarouselBlockMap>();
8284
services.AddSingleton<IEntityTypeMap, VideoAssetMap>();
8385

8486
services.AddSingleton<IEntityTypeMap, PartialFileMap>();

OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Map/Resources/Blocks/WholeSlideImageAnnotationMap.cs renamed to OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Map/Resources/Blocks/ImageAnnotationMap.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
1-
namespace LearningHub.Nhs.OpenApi.Repositories.Map.Resources
1+
namespace LearningHub.Nhs.OpenApi.Repositories.Map.Resources.Blocks
22
{
33
using LearningHub.Nhs.Models.Entities.Resource;
44
using Microsoft.EntityFrameworkCore;
55
using Microsoft.EntityFrameworkCore.Metadata.Builders;
66

77
/// <summary>
8-
/// The whole slide image annotation map.
8+
/// The image annotation map.
99
/// </summary>
1010
public class ImageAnnotationMap : BaseEntityMap<ImageAnnotation>
1111
{
1212
/// <summary>
1313
/// The internal map.
1414
/// </summary>
15-
/// <param name="modelBuilder">
16-
/// The model builder.
17-
/// </param>
15+
/// <param name="modelBuilder">The model builder.</param>
1816
protected override void InternalMap(EntityTypeBuilder<ImageAnnotation> modelBuilder)
1917
{
2018
modelBuilder.ToTable("ImageAnnotation", "resources");
@@ -24,6 +22,12 @@ protected override void InternalMap(EntityTypeBuilder<ImageAnnotation> modelBuil
2422
.HasForeignKey(a => a.WholeSlideImageId)
2523
.OnDelete(DeleteBehavior.Cascade)
2624
.HasConstraintName("FK_ImageAnnotation_WholeSlideImageId");
25+
26+
modelBuilder.HasOne(a => a.Image)
27+
.WithMany(i => i.ImageAnnotations)
28+
.HasForeignKey(a => a.ImageId)
29+
.OnDelete(DeleteBehavior.Cascade)
30+
.HasConstraintName("FK_ImageAnnotation_ImageId");
2731
}
2832
}
2933
}

OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Map/Resources/Blocks/WholeSlideImageAnnotationMarkMap.cs renamed to OpenAPI/LearningHub.Nhs.OpenApi.Repositories/Map/Resources/Blocks/ImageAnnotationMarkMap.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
1-
namespace LearningHub.Nhs.OpenApi.Repositories.Map.Resources
1+
namespace LearningHub.Nhs.OpenApi.Repositories.Map.Resources.Blocks
22
{
33
using LearningHub.Nhs.Models.Entities.Resource;
44
using Microsoft.EntityFrameworkCore;
55
using Microsoft.EntityFrameworkCore.Metadata.Builders;
66

77
/// <summary>
8-
/// The whole slide image annotation map.
8+
/// The image annotation mark map.
99
/// </summary>
1010
public class ImageAnnotationMarkMap : BaseEntityMap<ImageAnnotationMark>
1111
{
1212
/// <summary>
1313
/// The internal map.
1414
/// </summary>
15-
/// <param name="modelBuilder">
16-
/// The model builder.
17-
/// </param>
15+
/// <param name="modelBuilder">The model builder.</param>
1816
protected override void InternalMap(EntityTypeBuilder<ImageAnnotationMark> modelBuilder)
1917
{
2018
modelBuilder.ToTable("ImageAnnotationMark", "resources");
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
namespace LearningHub.Nhs.OpenApi.Repositories.Map.Resources.Blocks
2+
{
3+
using LearningHub.Nhs.Models.Entities.Resource.Blocks;
4+
using Microsoft.EntityFrameworkCore;
5+
using Microsoft.EntityFrameworkCore.Metadata.Builders;
6+
7+
/// <summary>
8+
/// the image carousel block map.
9+
/// </summary>
10+
public class ImageCarouselBlockMap : BaseEntityMap<ImageCarouselBlock>
11+
{
12+
/// <summary>
13+
/// The internal map.
14+
/// </summary>
15+
/// <param name="modelBuilder">The model builder.</param>
16+
protected override void InternalMap(EntityTypeBuilder<ImageCarouselBlock> modelBuilder)
17+
{
18+
modelBuilder.ToTable("ImageCarouselBlock", "resources");
19+
20+
modelBuilder.Property(e => e.BlockId).ValueGeneratedNever();
21+
modelBuilder.HasAlternateKey(c => c.BlockId);
22+
23+
modelBuilder.HasOne(d => d.Block)
24+
.WithOne(p => p.ImageCarouselBlock)
25+
.HasForeignKey<ImageCarouselBlock>(d => d.BlockId)
26+
.OnDelete(DeleteBehavior.Cascade)
27+
.HasConstraintName("FK_ImageCarouselBlock_BlockId");
28+
29+
modelBuilder.HasOne(d => d.ImageBlockCollection)
30+
.WithOne()
31+
.HasForeignKey<ImageCarouselBlock>(d => d.ImageBlockCollectionId)
32+
.OnDelete(DeleteBehavior.Cascade)
33+
.HasConstraintName("FK_ImageCarouselBlock_ImageBlockCollectionId");
34+
}
35+
}
36+
}

0 commit comments

Comments
 (0)