diff options
Diffstat (limited to 'Pages/ViewMedia.razor')
| -rw-r--r-- | Pages/ViewMedia.razor | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/Pages/ViewMedia.razor b/Pages/ViewMedia.razor index 8436159..68cc313 100644 --- a/Pages/ViewMedia.razor +++ b/Pages/ViewMedia.razor @@ -1,6 +1,7 @@ @page "/ViewMedia" @inject IDbContextFactory<HBContext> dbFactory @inject ITagService tagService +@implements IDisposable <PageTitle>@title</PageTitle> @@ -14,7 +15,7 @@ <div id="metadata-fileinfo"> <p>Title: <i>@(@media.ShortDescription ?? "None")</i></p> <p>Description: <i>@(media.LongDescription ?? "None")</i></p> - <p>Upload history</p> + <p id="metadata-uploadhistory">Upload history</p> <hr /> <table class="data-table"> <tr> @@ -84,9 +85,11 @@ private TagSelectDialog tagDialog; private MediaTagTable mediaTagTable; + private HBContext db; + protected override void OnInitialized() { - using var db = dbFactory.CreateDbContext(); - media = db.Media.AsNoTracking().First(m => m.Guid == MediaId); + db = dbFactory.CreateDbContext(); + media = db.Media.First(m => m.Guid == MediaId); if(media is null) throw new ArgumentException("Media not found!"); @@ -101,6 +104,18 @@ } 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(); } |
