aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Dlna/ContainerProfile.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Model/Dlna/ContainerProfile.cs')
-rw-r--r--MediaBrowser.Model/Dlna/ContainerProfile.cs49
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;
}
}
}