From 6ed8b2f7a2bac84f582048181c58cc318b729322 Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Wed, 6 Sep 2023 02:46:10 +1000 Subject: Added pointer to current UploadedFile on Media --- HBContext.cs | 9 +++++++-- Media.cs | 17 +++++++++-------- Services/MediaService.cs | 11 ++++++----- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/HBContext.cs b/HBContext.cs index 15dad6d..415b745 100644 --- a/HBContext.cs +++ b/HBContext.cs @@ -55,10 +55,15 @@ public class HBContext : DbContext { } }); - // Implicit tags need some special attention to make many<->many - // navigations work for the same object type. + // Some complex relationships cannot be inferred and require + // additional configuration, as seen below. modelBuilder.Entity() .HasMany(e => e.ImplicitTags) .WithMany(); + + modelBuilder.Entity() + .HasOne(m => m.CurrentUploadedFile) + .WithOne() + .HasForeignKey("CurrentUploadedFileId"); } } \ No newline at end of file diff --git a/Media.cs b/Media.cs index db38e9f..0335aa1 100644 --- a/Media.cs +++ b/Media.cs @@ -7,14 +7,15 @@ using System.Net.NetworkInformation; namespace HyperBooru; public class Media : HBObject { - public string Checksum { get; set; } - public string MimeType { get; set; } - public string? ShortDescription { get; set; } - public string? LongDescription { get; set; } - public int Width { get; set; } - public int Height { get; set; } - public virtual OcrData? OcrData { get; set; } - public virtual List UploadedFiles { get; set; } = new(); + public string Checksum { get; set; } + public string MimeType { get; set; } + public string? ShortDescription { get; set; } + public string? LongDescription { get; set; } + public int Width { get; set; } + public int Height { get; set; } + public virtual OcrData? OcrData { get; set; } + public virtual UploadedFile? CurrentUploadedFile { get; set; } + public virtual List UploadedFiles { get; set; } = new(); public bool IsIngest => Tags .Select(t => t.TagDefinitionId) diff --git a/Services/MediaService.cs b/Services/MediaService.cs index dece811..f814709 100644 --- a/Services/MediaService.cs +++ b/Services/MediaService.cs @@ -150,11 +150,12 @@ public class MediaService : IMediaService { .First(td => td.Guid == HBContext.IngestTag); media = new() { - Checksum = hash, - MimeType = mime, - Width = magickImage.Width, - Height = magickImage.Height, - UploadedFiles = new() { + Checksum = hash, + MimeType = mime, + Width = magickImage.Width, + Height = magickImage.Height, + CurrentUploadedFile = fileRecord, + UploadedFiles = new() { fileRecord }, Tags = new() { -- cgit v1.3