private IReadOnlyDictionary <string, string> ValidateDefaultTags(IReadOnlyDictionary <string, string> tags) { var defaultTags = tags?.ToImmutableDictionary() ?? ImmutableDictionary <string, string> .Empty; var defaultTagBuilder = defaultTags.ToBuilder(); foreach (var key in defaultTags.Keys.ToArray()) { if (!MetricValidation.IsValidTagName(key)) { throw new Exception($"\"{key}\" is not a valid tag name."); } if (TagValueConverter != null) { defaultTagBuilder[key] = TagValueConverter(key, defaultTags[key]); } if (!MetricValidation.IsValidTagValue(defaultTags[key])) { throw new Exception($"\"{defaultTags[key]}\" is not a valid tag value."); } } return(defaultTagBuilder.ToImmutable()); }
ReadOnlyDictionary <string, string> ValidateDefaultTags(Dictionary <string, string> tags) { var defaultTags = tags == null ? new Dictionary <string, string>() : new Dictionary <string, string>(tags); foreach (var key in defaultTags.Keys.ToArray()) { if (!MetricValidation.IsValidTagName(key)) { throw new Exception($"\"{key}\" is not a valid tag name."); } if (TagValueConverter != null) { defaultTags[key] = TagValueConverter(key, defaultTags[key]); } if (!MetricValidation.IsValidTagValue(defaultTags[key])) { throw new Exception($"\"{defaultTags[key]}\" is not a valid tag value."); } } return(new ReadOnlyDictionary <string, string>(defaultTags)); }