diff options
Diffstat (limited to 'MediaBrowser.Model/Dlna/ContainerProfile.cs')
| -rw-r--r-- | MediaBrowser.Model/Dlna/ContainerProfile.cs | 49 |
1 files changed, 41 insertions, 8 deletions
diff --git a/MediaBrowser.Model/Dlna/ContainerProfile.cs b/MediaBrowser.Model/Dlna/ContainerProfile.cs index 35d7ada6b..23bbf0193 100644 --- a/MediaBrowser.Model/Dlna/ContainerProfile.cs +++ b/MediaBrowser.Model/Dlna/ContainerProfile.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Xml.Serialization; using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Extensions; @@ -19,21 +20,53 @@ namespace MediaBrowser.Model.Dlna Conditions = new ProfileCondition[] { }; } - public List<string> GetContainers() + public string[] GetContainers() { - List<string> list = new List<string>(); - foreach (string i in (Container ?? string.Empty).Split(',')) + return SplitValue(Container); + } + + private static readonly string[] EmptyStringArray = new string[] { }; + + public static string[] SplitValue(string value) + { + if (string.IsNullOrWhiteSpace(value)) { - if (!string.IsNullOrEmpty(i)) list.Add(i); + return EmptyStringArray; } - return list; + + return value.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); } public bool ContainsContainer(string container) { - List<string> containers = GetContainers(); + var containers = GetContainers(); + + return ContainsContainer(containers, container); + } + + public static bool ContainsContainer(string profileContainers, string inputContainer) + { + return ContainsContainer(SplitValue(profileContainers), inputContainer); + } + + public static bool ContainsContainer(string[] profileContainers, string inputContainer) + { + if (profileContainers.Length == 0) + { + return true; + } + + var allInputContainers = SplitValue(inputContainer); + + foreach (var container in allInputContainers) + { + if (ListHelper.ContainsIgnoreCase(profileContainers, container)) + { + return true; + } + } - return containers.Count == 0 || ListHelper.ContainsIgnoreCase(containers, container ?? string.Empty); + return false; } } } |
