diff options
| author | Jake Mannens <jake@asger.xyz> | 2023-08-16 14:19:33 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2023-08-16 14:19:33 +1000 |
| commit | 596f79318b41b7da60da0f82794f56f306842973 (patch) | |
| tree | a6523f99fa70ea6da1780347201e06943f56778f /Services | |
| parent | 8e94a12be4a56447e78d68c37def772bef8cade4 (diff) | |
Fixed most existing dialogs
Diffstat (limited to 'Services')
| -rw-r--r-- | Services/TagService.cs | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/Services/TagService.cs b/Services/TagService.cs index e0dcf64..e0d1072 100644 --- a/Services/TagService.cs +++ b/Services/TagService.cs @@ -4,7 +4,9 @@ using Microsoft.EntityFrameworkCore; namespace HyperBooru.Services; public interface ITagService { + public void AddTag(Guid obj, Guid tagDef); public void AddTag(HBObject obj, TagDefinition tagDef); + public void RemoveTag(Guid obj, Guid tagDef); public void RemoveTag(HBObject obj, TagDefinition tagDef); public void AddImplicitTag(TagDefinition tagDef, TagDefinition implicitTagDef); public void RemoveImplicitTag(TagDefinition tagDef, TagDefinition implicitTagDef); @@ -18,22 +20,23 @@ public class TagService : ITagService { public TagService(IDbContextFactory<HBContext> dbFactory) => this.dbFactory = dbFactory; - public void AddTag(HBObject obj, TagDefinition tagDef) { + public void AddTag(Guid obj, Guid tagDef) { using var db = dbFactory.CreateDbContext(); - db.Entry(obj).State = EntityState.Unchanged; - bool alreadyTagged = obj.Tags - .Select(t => t.TagDefinition.Guid) - .Contains(tagDef.Guid); + var tag = db.TagDefinitions.First(td => td.Guid == tagDef); - obj.Tags.Add(new() { - TagDefinition = tagDef, - Target = obj - }); + db.Objects + .Where(o => !o.Tags.Select(t => t.TagDefinition.Guid).Contains(tagDef)) + .FirstOrDefault(o => o.Guid == obj)? + .Tags + .Add(new(tag)); db.SaveChanges(); } + public void AddTag(HBObject obj, TagDefinition tagDef) => + AddTag(obj.Guid, tagDef.Guid); + public void RemoveTag(Guid obj, Guid tagDef) { using var db = dbFactory.CreateDbContext(); |
