@page "/ViewMedia" @inject IDbContextFactory dbFactory @inject ITagService tagService @implements IDisposable @title

Title: @(@media.ShortDescription ?? "None")

Description: @(media.LongDescription ?? "None")

Upload history


@foreach(var file in media.UploadedFiles) { }
Created On Last Write Uploaded On Filename Original Checksum
@(file.CreateTime?.ToString() ?? "N/A") @(file.LastWriteTime?.ToString() ?? "N/A") @file.UploadTime @file.Filename @file.OriginalChecksum
@if(media.IsIngest) { } else { }
@code { [Parameter] [SupplyParameterFromQuery(Name = "m")] public Guid MediaId { get; set; } private Media media; private string title; private bool infoEditMode = false; private Dialog deleteDialog; private TagSelectDialog tagDialog; private MediaTagTable mediaTagTable; private HBContext db; protected override void OnInitialized() { db = dbFactory.CreateDbContext(); media = db.Media.First(m => m.Guid == MediaId); if(media is null) throw new ArgumentException("Media not found!"); title = media.DisplayName ?? "Media View"; } private void AddTags(TagDefinition[] tagDefs) { Console.WriteLine($"Adding tags: {string.Join(", ", tagDefs.Select(td => td.Name))}"); foreach(var tagDef in tagDefs) tagService.AddTag(media, tagDef); mediaTagTable.Refresh(); } private void SetIngest(bool ingest) { var ingestTag = db.TagDefinitions .First(td => td.Source == TagSource.Internal && td.Name == "ingest"); if(!ingest) media.Tags.RemoveAll(t => t.TagDefinition.Guid == ingestTag.Guid); else if(!media.IsIngest) media.Tags.Add(new(ingestTag)); db.SaveChanges(); StateHasChanged(); } public void Dispose() => db.Dispose(); }