using Microsoft.EntityFrameworkCore; namespace HyperBooru.Services; public interface IMediaService { public void SetIngest(Media media, bool ingest); } public class MediaService : IMediaService { private IDbContextFactory dbFactory; public MediaService(IDbContextFactory dbFactory) => this.dbFactory = dbFactory; 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"); if(ingest) media.Tags.Add(new() { TagDefinition = ingestTag }); else media.Tags.Remove( media.Tags.First(t => t.TagDefinition.Guid == ingestTag.Guid)); db.SaveChanges(); } }