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