@inject IDbContextFactory dbFactory @inject ITagService tagService @foreach(var e in tagDefs) { }
Namespace Tag Name
@if(e.isImplicit) { @e.tagDef.Namespace } else { @e.tagDef.Namespace } @if(e.isImplicit) { @e.tagDef.Name } else { @e.tagDef.Name } @if(!e.isImplicit) { Delete(e.tagDef))>Delete } else { MakeExplicit(e.tagDef))>Make Explicit }
@code { [Parameter] public Media Media { get; set; } private (TagDefinition tagDef, bool isImplicit)[] tagDefs; protected override void OnInitialized() => LoadTagDefs(); public void Refresh() { LoadTagDefs(); StateHasChanged(); } private void Delete(TagDefinition tagDef) { tagService.RemoveTag(Media.Guid, tagDef.Guid); Refresh(); } private void LoadTagDefs() { using var db = dbFactory.CreateDbContext(); var media = db.Media.First(m => m.ObjectId == Media.ObjectId); tagDefs = tagService.GetAllTags(Media) .Where(e => e.tagDefinition.Source == TagSource.UserTag) .ToArray(); } private void MakeExplicit(TagDefinition tagDef) { tagService.AddTag(Media, tagDef); Refresh(); } }