DLaB.EarlyBoundGenerator.Settings.EarlyBoundGeneratorConfig.AddMissingDictionaryHashDefaultValues C# (CSharp) Method

AddMissingDictionaryHashDefaultValues() private method

private AddMissingDictionaryHashDefaultValues ( string value, string @default ) : string
value string
@default string
return string
        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);
            }
        }