summaryrefslogtreecommitdiff
path: root/Services/MediaService.cs
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2023-08-15 15:49:14 +1000
committerJake Mannens <jake@asger.xyz>2023-08-15 15:49:14 +1000
commit8e94a12be4a56447e78d68c37def772bef8cade4 (patch)
tree0a12c64f8e34da45df8ac8e4c484c83385aedb45 /Services/MediaService.cs
parent5b00f23b28e3a09a4120101a8be8802d009e5d84 (diff)
Convert Razor pages to Blazor
Diffstat (limited to 'Services/MediaService.cs')
-rw-r--r--Services/MediaService.cs28
1 files changed, 28 insertions, 0 deletions
diff --git a/Services/MediaService.cs b/Services/MediaService.cs
new file mode 100644
index 0000000..be2657a
--- /dev/null
+++ b/Services/MediaService.cs
@@ -0,0 +1,28 @@
+using Microsoft.EntityFrameworkCore;
+
+namespace HyperBooru.Services;
+
+public interface IMediaService {
+ public void SetIngest(Media media, bool ingest);
+}
+
+public class MediaService : IMediaService {
+ private IDbContextFactory<HBContext> dbFactory;
+
+ public MediaService(IDbContextFactory<HBContext> 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();
+ }
+}