From 4558ed9d6cbc59229cd56cc7a6c36b1df0b8199a Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Sun, 20 Aug 2023 22:59:09 +1000 Subject: NSFW tagging and tag editing --- Services/MediaService.cs | 2 +- Services/TagService.cs | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'Services') diff --git a/Services/MediaService.cs b/Services/MediaService.cs index be2657a..05dd5b0 100644 --- a/Services/MediaService.cs +++ b/Services/MediaService.cs @@ -15,7 +15,7 @@ public class MediaService : IMediaService { public void SetIngest(Media media, bool ingest) { using var db = dbFactory.CreateDbContext(); var ingestTag = db.TagDefinitions - .First(td => td.Source == TagSource.Internal && td.Name == "ingest"); + .First(td => td.Guid == HBContext.IngestTag); if(ingest) media.Tags.Add(new() { TagDefinition = ingestTag }); diff --git a/Services/TagService.cs b/Services/TagService.cs index c3b8e14..8de52ff 100644 --- a/Services/TagService.cs +++ b/Services/TagService.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Razor.TagHelpers; using Microsoft.EntityFrameworkCore; +using System.Reflection; using System.Reflection.Metadata; namespace HyperBooru.Services; @@ -15,6 +16,8 @@ public interface ITagService { public void SetImplicitTags(Guid tagDef, Guid[] implicitTagDefs); public void CreateTagDefinition(string name, string? @namespace); public void DeleteTagDefinition(TagDefinition tagDef); + public void UpdateTagDefinition(Guid tagDef, string name, string? @namespace); + public void UpdateTagDefinition(TagDefinition tagDef, string name, string? @namespace); public (TagDefinition tagDefinition, bool isImplicit)[] GetAllTags(Guid obj); public (TagDefinition tagDefinition, bool isImplicit)[] GetAllTags(HBObject obj); } @@ -102,6 +105,22 @@ public class TagService : ITagService { transaction.Commit(); } + public void UpdateTagDefinition(Guid tagDef, string name, string? @namespace) { + using var db = dbFactory.CreateDbContext(); + + if(string.IsNullOrEmpty(@namespace)) + @namespace = null; + + var tag = db.TagDefinitions.First(td => td.Guid == tagDef); + tag.Name = name; + tag.Namespace = @namespace; + + db.SaveChanges(); + } + + public void UpdateTagDefinition(TagDefinition tagDef, string name, string? @namespace) => + UpdateTagDefinition(tagDef.Guid, name, @namespace); + public (TagDefinition tagDefinition, bool isImplicit)[] GetAllTags(Guid obj) { IEnumerable GetTagRecursive(IEnumerable tagDefs) => tagDefs -- cgit v1.3