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

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