private string AddMissingDictionaryHashDefaultValues(string value, string @default)
{
try
{
if (value == null || @default == null)
{
return @default ?? value;
}
var values = Config.GetDictionaryHash<string, string>(Guid.NewGuid().ToString(), value);
var defaultValues = Config.GetDictionaryHash<string, string>(Guid.NewGuid().ToString(), @default);
foreach (var entry in defaultValues)
{
HashSet<string> hash;
if (!values.TryGetValue(entry.Key, out hash))
{
hash = new HashSet<string>();
values[entry.Key] = hash;
}
foreach (var item in entry.Value.Where(v => !hash.Contains(v)))
{
hash.Add(item);
}
}
// All missing values have been added. Join back Values
return Config.ToString(values);
}
catch (Exception ex)
{
throw new Exception("Error Processing config value: " + value, ex);
}
}