Fixed DeepL settings' cache

This commit is contained in:
Thorsten Sommer 2022-10-03 17:53:49 +02:00
parent 131b2e2ff3
commit 433a4e33a1
Signed by: tsommer
GPG Key ID: 371BBA77A02C0108

View File

@ -51,29 +51,36 @@ public static class AppSettings
{
if (CACHE_DEEPL_MODE_IS_LOADED)
return CACHE_DEEPL_MODE;
// Get the database:
await using var db = ProcessorMeta.ServiceProvider.GetRequiredService<DataContext>();
// Check, if the setting is already set:
if (await db.Settings.FirstOrDefaultAsync(n => n.Code == SettingNames.DEEPL_MODE) is { } existingSetting)
return (SettingDeepLMode) existingSetting.IntegerValue;
// Does not exist, so create it:
var setting = new Setting
var mode = SettingDeepLMode.DISABLED;
try
{
Code = SettingNames.DEEPL_MODE,
IntegerValue = (int)SettingDeepLMode.DISABLED,
};
await db.Settings.AddAsync(setting);
await db.SaveChangesAsync();
var mode = (SettingDeepLMode) setting.IntegerValue;
CACHE_DEEPL_MODE = mode;
CACHE_DEEPL_MODE_IS_LOADED = true;
return mode;
// Get the database:
await using var db = ProcessorMeta.ServiceProvider.GetRequiredService<DataContext>();
// Check, if the setting is already set:
if (await db.Settings.FirstOrDefaultAsync(n => n.Code == SettingNames.DEEPL_MODE) is { } existingSetting)
{
mode = (SettingDeepLMode) existingSetting.IntegerValue;
return mode;
}
// Does not exist, so create it:
var setting = new Setting
{
Code = SettingNames.DEEPL_MODE,
IntegerValue = (int) mode,
};
await db.Settings.AddAsync(setting);
await db.SaveChangesAsync();
return mode;
}
finally
{
CACHE_DEEPL_MODE = mode;
CACHE_DEEPL_MODE_IS_LOADED = true;
}
}
#endregion
@ -118,29 +125,36 @@ public static class AppSettings
// Check the cache:
if (CACHE_DEEPL_API_KEY_IS_LOADED)
return CACHE_DEEPL_API_KEY;
// Get the database:
await using var db = ProcessorMeta.ServiceProvider.GetRequiredService<DataContext>();
// Check, if the setting is already set:
if (await db.Settings.FirstOrDefaultAsync(n => n.Code == SettingNames.DEEPL_API_KEY) is { } existingSetting)
return existingSetting.TextValue;
// Does not exist, so create it:
var setting = new Setting
var key = string.Empty;
try
{
Code = SettingNames.DEEPL_API_KEY,
TextValue = string.Empty,
};
await db.Settings.AddAsync(setting);
await db.SaveChangesAsync();
var key = setting.TextValue;
CACHE_DEEPL_API_KEY = key;
CACHE_DEEPL_API_KEY_IS_LOADED = true;
return key;
// Get the database:
await using var db = ProcessorMeta.ServiceProvider.GetRequiredService<DataContext>();
// Check, if the setting is already set:
if (await db.Settings.FirstOrDefaultAsync(n => n.Code == SettingNames.DEEPL_API_KEY) is { } existingSetting)
{
key = existingSetting.TextValue;
return key;
}
// Does not exist, so create it:
var setting = new Setting
{
Code = SettingNames.DEEPL_API_KEY,
TextValue = key,
};
await db.Settings.AddAsync(setting);
await db.SaveChangesAsync();
return key;
}
finally
{
CACHE_DEEPL_API_KEY = key;
CACHE_DEEPL_API_KEY_IS_LOADED = true;
}
}
#endregion
@ -189,28 +203,35 @@ public static class AppSettings
if (CACHE_DEEPL_ACTION_IS_LOADED)
return CACHE_DEEPL_ACTION;
// Get the database:
await using var db = ProcessorMeta.ServiceProvider.GetRequiredService<DataContext>();
// Check, if the setting is already set:
if (await db.Settings.FirstOrDefaultAsync(n => n.Code == SettingNames.DEEPL_ACTION) is { } existingSetting)
return (SettingDeepLAction) existingSetting.IntegerValue;
// Does not exist, so create it:
var setting = new Setting
var action = SettingDeepLAction.MANUAL;
try
{
Code = SettingNames.DEEPL_ACTION,
IntegerValue = (int)SettingDeepLAction.MANUAL,
};
await db.Settings.AddAsync(setting);
await db.SaveChangesAsync();
var action = (SettingDeepLAction) setting.IntegerValue;
CACHE_DEEPL_ACTION = action;
CACHE_DEEPL_ACTION_IS_LOADED = true;
return action;
// Get the database:
await using var db = ProcessorMeta.ServiceProvider.GetRequiredService<DataContext>();
// Check, if the setting is already set:
if (await db.Settings.FirstOrDefaultAsync(n => n.Code == SettingNames.DEEPL_ACTION) is { } existingSetting)
{
action = (SettingDeepLAction) existingSetting.IntegerValue;
return action;
}
// Does not exist, so create it:
var setting = new Setting
{
Code = SettingNames.DEEPL_ACTION,
IntegerValue = (int) action,
};
await db.Settings.AddAsync(setting);
await db.SaveChangesAsync();
return action;
}
finally
{
CACHE_DEEPL_ACTION = action;
CACHE_DEEPL_ACTION_IS_LOADED = true;
}
}
#endregion
@ -256,28 +277,35 @@ public static class AppSettings
if (CACHE_DEEPL_SOURCE_CULTURE_IS_LOADED)
return CACHE_DEEPL_SOURCE_CULTURE;
// Get the database:
await using var db = ProcessorMeta.ServiceProvider.GetRequiredService<DataContext>();
// Check, if the setting is already set:
if (await db.Settings.FirstOrDefaultAsync(n => n.Code == SettingNames.DEEPL_SOURCE_CULTURE) is { } existingSetting)
return existingSetting.IntegerValue;
// Does not exist, so create it:
var setting = new Setting
var cultureIndex = -1;
try
{
Code = SettingNames.DEEPL_SOURCE_CULTURE,
IntegerValue = -1,
};
await db.Settings.AddAsync(setting);
await db.SaveChangesAsync();
var cultureIndex = setting.IntegerValue;
CACHE_DEEPL_SOURCE_CULTURE = cultureIndex;
CACHE_DEEPL_SOURCE_CULTURE_IS_LOADED = true;
return cultureIndex;
// Get the database:
await using var db = ProcessorMeta.ServiceProvider.GetRequiredService<DataContext>();
// Check, if the setting is already set:
if (await db.Settings.FirstOrDefaultAsync(n => n.Code == SettingNames.DEEPL_SOURCE_CULTURE) is { } existingSetting)
{
cultureIndex = existingSetting.IntegerValue;
return cultureIndex;
}
// Does not exist, so create it:
var setting = new Setting
{
Code = SettingNames.DEEPL_SOURCE_CULTURE,
IntegerValue = cultureIndex,
};
await db.Settings.AddAsync(setting);
await db.SaveChangesAsync();
return cultureIndex;
}
finally
{
CACHE_DEEPL_SOURCE_CULTURE = cultureIndex;
CACHE_DEEPL_SOURCE_CULTURE_IS_LOADED = true;
}
}
#endregion