using DataModel.Database; using DataModel.Database.Common; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; namespace Processor; public static class AppSettings { public static async Task SetDeepLMode(SettingDeepL mode) { // Convert the enum to its int value: var intValue = (int)mode; // Get the database: await using var db = ProcessorMeta.ServiceProvider.GetRequiredService(); // Check, if the setting is already set: if (await db.Settings.FirstOrDefaultAsync(n => n.Code == SettingNames.DEEPL_MODE) is {} existingSetting) { existingSetting.IntegerValue = intValue; await db.SaveChangesAsync(); } // Does not exist, so create it: else { var setting = new Setting { Code = SettingNames.DEEPL_MODE, IntegerValue = intValue, }; await db.Settings.AddAsync(setting); await db.SaveChangesAsync(); } } public static async Task GetDeepLMode() { // Get the database: await using var db = ProcessorMeta.ServiceProvider.GetRequiredService(); // Check, if the setting is already set: if (await db.Settings.FirstOrDefaultAsync(n => n.Code == SettingNames.DEEPL_MODE) is { } existingSetting) return (SettingDeepL) existingSetting.IntegerValue; // Does not exist, so create it: var setting = new Setting { Code = SettingNames.DEEPL_MODE, IntegerValue = (int)SettingDeepL.DISABLED, }; await db.Settings.AddAsync(setting); await db.SaveChangesAsync(); return (SettingDeepL) setting.IntegerValue; } }