diff options
| author | Jake Mannens <jake@asger.xyz> | 2023-09-06 09:30:54 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2023-09-06 09:30:54 +1000 |
| commit | c1c81ba6a14437e020841f1d454d473bbda6b52b (patch) | |
| tree | c6086bd8f8f4048bf3257ba93503605249d379c1 /Services/MediaService.cs | |
| parent | 33a3c4d57d774d98c3836c98ecbd2e1dd5ea84c3 (diff) | |
Moved metadata from Media object to UploadedFile object
Diffstat (limited to 'Services/MediaService.cs')
| -rw-r--r-- | Services/MediaService.cs | 41 |
1 files changed, 22 insertions, 19 deletions
diff --git a/Services/MediaService.cs b/Services/MediaService.cs index cfd15f8..e573add 100644 --- a/Services/MediaService.cs +++ b/Services/MediaService.cs @@ -117,17 +117,6 @@ public class MediaService : IMediaService { if(checksum is not null && hash != checksum.ToLower()) throw new MediaCreateException("Checksum does not match"); - var fileRecord = new UploadedFile() { - Filename = fileName, - Length = fileData.Length, - OriginalChecksum = hash, - ChecksumVerified = checksum is not null, - UploadTime = DateTime.UtcNow, - LastAccessTime = lastAccessTime, - LastWriteTime = lastWriteTime, - CreateTime = createTime - }; - // Determine the MIME type fileData.Seek(0, SeekOrigin.Begin); var defs = inspector.Inspect(fileData); @@ -139,18 +128,29 @@ public class MediaService : IMediaService { fileData.Seek(0, SeekOrigin.Begin); using var magickImage = new MagickImage(fileData); - var media = db.Media - .FirstOrDefault(m => m.Checksum == hash); + var media = db.UploadedFiles + .FirstOrDefault(uf => uf.Checksum == hash)? + .Media; + + var fileRecord = new UploadedFile() { + Filename = fileName, + Length = fileData.Length, + Checksum = hash, + ChecksumVerified = checksum is not null, + MimeType = mime, + Width = magickImage.Width, + Height = magickImage.Height, + UploadTime = DateTime.UtcNow, + LastAccessTime = lastAccessTime, + LastWriteTime = lastWriteTime, + CreateTime = createTime + }; if(media is null) { var ingestTagDef = db.TagDefinitions .First(td => td.Guid == HBContext.IngestTag); media = new() { - Checksum = hash, - MimeType = mime, - Width = magickImage.Width, - Height = magickImage.Height, CurrentUploadedFile = fileRecord, UploadedFiles = new() { fileRecord @@ -244,11 +244,14 @@ public class MediaService : IMediaService { public Stream GetThumbnail(Guid media, int? width, int? height) { using var db = dbFactory.CreateDbContext(); - var m = db.Media.First(m => m.Guid == media); + + var m = db.Media + .Include(m => m.CurrentUploadedFile) + .First(m => m.Guid == media); if(m is null) throw new ObjectNotFoundException(media); - if(m.MimeType.Split("/")[0] != "image") + if(m.CurrentUploadedFile.MimeType.Split("/")[0] != "image") throw new ThumbnailException("Media object not an image", m); using var image = new MagickImage(GetPath(m)); |
