Example #1
0
        private static string GetLanguageSpecificAttribute(XRefSpec spec, string language, params string[] keyInFallbackOrder)
        {
            if (keyInFallbackOrder == null || keyInFallbackOrder.Length == 0)
            {
                throw new ArgumentException("key must be provided!", nameof(keyInFallbackOrder));
            }
            string suffix = string.Empty;

            if (!string.IsNullOrEmpty(language))
            {
                suffix = "." + language;
            }
            foreach (var key in keyInFallbackOrder)
            {
                var keyWithSuffix = key + suffix;
                if (spec.TryGetXrefStringValue(keyWithSuffix, out var suffixedValue))
                {
                    return(suffixedValue);
                }
                if (spec.TryGetXrefStringValue(key, out var value))
                {
                    return(value);
                }
            }
            return(null);
        }