Fix #5363: update SettingService.MergeSettings.

This commit is contained in:
Ben
2025-07-03 15:42:11 +08:00
parent b1a8c28283
commit b63590d6c7
2 changed files with 10 additions and 12 deletions

View File

@ -256,7 +256,7 @@ namespace Oqtane.Services
Dictionary<string, string> SetSetting(Dictionary<string, string> settings, string settingName, string settingValue, bool isPrivate); Dictionary<string, string> SetSetting(Dictionary<string, string> settings, string settingName, string settingValue, bool isPrivate);
Dictionary<string, string> MergeSettings(Dictionary<string, string> settings1, Dictionary<string, string> settings2); Dictionary<string, string> MergeSettings(Dictionary<string, string> baseSettings, Dictionary<string, string> overwriteSettings);
[Obsolete("GetSettingAsync(int settingId) is deprecated. Use GetSettingAsync(string entityName, int settingId) instead.", false)] [Obsolete("GetSettingAsync(int settingId) is deprecated. Use GetSettingAsync(string entityName, int settingId) instead.", false)]

View File

@ -266,27 +266,25 @@ namespace Oqtane.Services
return settings; return settings;
} }
public Dictionary<string, string> MergeSettings(Dictionary<string, string> settings1, Dictionary<string, string> settings2) public Dictionary<string, string> MergeSettings(Dictionary<string, string> baseSettings, Dictionary<string, string> overwriteSettings)
{ {
if (settings1 == null) var settings = baseSettings != null ? new Dictionary<string, string>(baseSettings) : new Dictionary<string, string>();
if (overwriteSettings != null)
{ {
settings1 = new Dictionary<string, string>(); foreach (var setting in overwriteSettings)
}
if (settings2 != null)
{
foreach (var setting in settings2)
{ {
if (settings1.ContainsKey(setting.Key)) if (settings.ContainsKey(setting.Key))
{ {
settings1[setting.Key] = setting.Value; settings[setting.Key] = setting.Value;
} }
else else
{ {
settings1.Add(setting.Key, setting.Value); settings.Add(setting.Key, setting.Value);
} }
} }
} }
return settings1;
return settings;
} }
[Obsolete("GetSettingAsync(int settingId) is deprecated. Use GetSettingAsync(string entityName, int settingId) instead.", false)] [Obsolete("GetSettingAsync(int settingId) is deprecated. Use GetSettingAsync(string entityName, int settingId) instead.", false)]