diff options
Diffstat (limited to 'Services')
| -rw-r--r-- | Services/MediaService.cs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/Services/MediaService.cs b/Services/MediaService.cs index 2d1533c..a0521db 100644 --- a/Services/MediaService.cs +++ b/Services/MediaService.cs @@ -1,8 +1,10 @@ using HyperBooru.ApiModels; +using HyperBooru.Util; using ImageMagick; using Microsoft.EntityFrameworkCore; using MimeDetective; using MimeDetective.Definitions; +using System.Diagnostics.CodeAnalysis; using System.Security.Cryptography; using System.Text.RegularExpressions; @@ -230,7 +232,10 @@ public class MediaService : IMediaService { public void Delete(Guid media) { using var db = dbFactory.CreateDbContext(); - var m = db.Media.First(m => m.Guid == media); + var m = db.Media.FirstOrDefault(m => m.Guid == media); + + if(m is null) + throw new ObjectNotFoundException([ media ]); var path = Path.Join( config.MediaBasePath, @@ -391,10 +396,11 @@ public class MediaService : IMediaService { public string GetConvertedPath(Media media, string mimeType) => GetConvertedPath(media.Guid, mimeType); - private int GetUploadedFileHash(UploadedFile uf) => ( - uf.CreateTime, - uf.LastWriteTime, - uf.Filename, - uf.Length, - uf.Checksum).GetHashCode(); + private int GetUploadedFileHash(UploadedFile uf) => + HashCode.Combine( + uf.CreateTime?.GetRoundedHashCode(), + uf.LastWriteTime?.GetRoundedHashCode(), + uf.Filename, + uf.Length, + uf.Checksum); } |
