using System.Collections.Generic;
namespace Jellyfin.Extensions
{
///
/// Static extensions for the interface.
///
public static class DictionaryExtensions
{
///
/// Gets a string from a string dictionary, checking all keys sequentially,
/// stopping at the first key that returns a result that's neither null nor blank.
///
/// The dictionary.
/// The first checked key.
/// The second checked key.
/// The third checked key.
/// The fourth checked key.
/// System.String.
public static string? GetFirstNotNullNorWhiteSpaceValue(this IReadOnlyDictionary dictionary, string key1, string? key2 = null, string? key3 = null, string? key4 = null)
{
if (dictionary.TryGetValue(key1, out var val) && !string.IsNullOrWhiteSpace(val))
{
return val;
}
if (!string.IsNullOrEmpty(key2) && dictionary.TryGetValue(key2, out val) && !string.IsNullOrWhiteSpace(val))
{
return val;
}
if (!string.IsNullOrEmpty(key3) && dictionary.TryGetValue(key3, out val) && !string.IsNullOrWhiteSpace(val))
{
return val;
}
if (!string.IsNullOrEmpty(key4) && dictionary.TryGetValue(key4, out val) && !string.IsNullOrWhiteSpace(val))
{
return val;
}
return null;
}
}
}