From 38c60cee378b9c2ad42fc9dc79bc492b919a68f5 Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Tue, 15 Aug 2023 15:49:14 +1000 Subject: Convert Razor pages to Blazor --- Media.cs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Media.cs (limited to 'Media.cs') diff --git a/Media.cs b/Media.cs new file mode 100644 index 0000000..68ae4c4 --- /dev/null +++ b/Media.cs @@ -0,0 +1,43 @@ +using Microsoft.AspNetCore.Mvc.ModelBinding.Binders; +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +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 virtual List UploadedFiles { get; set; } = new(); + + public bool IsIngest => Tags + .Select(t => t.TagDefinition) + .Any(td => td.Source == TagSource.Internal && td.Name == "ingest"); + + public string? DisplayName { + get { + if(ShortDescription is not null) + return ShortDescription; + + return UploadedFiles + .OrderBy(f => f.UploadTime) + .First()?.Filename; + } + } +} + +public record UploadedFile { + [Key] + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int UploadedFileId { get; set; } + public string OriginalChecksum { get; set; } + public string? Filename { get; set; } + public DateTime UploadTime { get; set; } = DateTime.Now; + public DateTime? LastAccessTime { get; set; } + public DateTime? LastWriteTime { get; set; } + public DateTime? CreateTime { get; set; } + public virtual Media Media { get; set; } +} \ No newline at end of file -- cgit v1.3