From 2b66d00175950d845a794422433d4a350cf87775 Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Wed, 6 May 2026 22:33:52 +1000 Subject: v0.13a --- Media.cs | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) (limited to 'Media.cs') diff --git a/Media.cs b/Media.cs index 51626be..2ff9e63 100644 --- a/Media.cs +++ b/Media.cs @@ -1,8 +1,7 @@ -using Microsoft.AspNetCore.Mvc.ModelBinding.Binders; +using HyperBooru.ApiModels; using Microsoft.EntityFrameworkCore; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; -using System.Net.NetworkInformation; namespace HyperBooru; @@ -27,6 +26,13 @@ public class Media : HBObject { .First()?.Filename ?? Guid.ToString().ToUpper(); } } + + public static explicit operator ApiModels.Media(Media media) => + new() { + MediaId = media.Guid, + ShortDescription = media.ShortDescription, + LongDescription = media.LongDescription + }; } public class UploadedFile : HBObject { @@ -44,6 +50,25 @@ public class UploadedFile : HBObject { public string? Path { get; set; } public PathType? PathType { get; set; } public virtual Media Media { get; set; } + + public static explicit operator ApiModels.UploadedFile(UploadedFile uploadedFile) => + new() { + MediaId = uploadedFile.Media.Guid, + UploadedFileId = uploadedFile.Guid, + Checksum = uploadedFile.Checksum, + ChecksumVerified = uploadedFile.ChecksumVerified, + Filename = uploadedFile.Filename, + Length = uploadedFile.Length, + MimeType = uploadedFile.MimeType, + Width = uploadedFile.Width, + Height = uploadedFile.Height, + UploadTime = uploadedFile.UploadTime, + LastAccessTime = uploadedFile.LastAccessTime, + LastWriteTime = uploadedFile.LastWriteTime, + CreateTime = uploadedFile.CreateTime, + Path = uploadedFile.Path, + PathType = (ApiModels.PathType?) uploadedFile.PathType + }; } public class OcrData { @@ -56,4 +81,12 @@ public class OcrData { public string SearchableText { get; set; } public DateTime Timestamp { get; set; } public virtual Media Media { get; set; } + + public static explicit operator ApiModels.OcrData(OcrData ocrData) => + new() { + MediaId = ocrData.Media.Guid, + Text = ocrData.Text, + SearchableText = ocrData.SearchableText, + Timestamp = ocrData.Timestamp + }; } \ No newline at end of file -- cgit v1.3