aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Library/NameExtensions.cs
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2015-04-14 00:43:41 -0400
committerLuke <luke.pulverenti@gmail.com>2015-04-14 00:43:41 -0400
commit935de313d58c7a7ba792345c16cfd1c1aad09a78 (patch)
tree2e9334986de5864b00d4901f031b5de6a970305e /MediaBrowser.Controller/Library/NameExtensions.cs
parent71a4f2761e784513ae2f3dda03aa549903808ebb (diff)
parentbd253399c2f1913c544c93fd6927dee37f8add2f (diff)
Merge pull request #1079 from MediaBrowser/dev
3.0.5582.0
Diffstat (limited to 'MediaBrowser.Controller/Library/NameExtensions.cs')
-rw-r--r--MediaBrowser.Controller/Library/NameExtensions.cs41
1 files changed, 41 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Library/NameExtensions.cs b/MediaBrowser.Controller/Library/NameExtensions.cs
new file mode 100644
index 000000000..b2acdc7ea
--- /dev/null
+++ b/MediaBrowser.Controller/Library/NameExtensions.cs
@@ -0,0 +1,41 @@
+using MediaBrowser.Common.Extensions;
+using MoreLinq;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace MediaBrowser.Controller.Library
+{
+ public static class NameExtensions
+ {
+ public static bool AreEqual(string name1, string name2)
+ {
+ name1 = NormalizeForComparison(name1);
+ name2 = NormalizeForComparison(name2);
+
+ return string.Equals(name1, name2, StringComparison.OrdinalIgnoreCase);
+ }
+
+ public static bool EqualsAny(IEnumerable<string> names, string name)
+ {
+ name = NormalizeForComparison(name);
+
+ return names.Any(i => string.Equals(NormalizeForComparison(i), name, StringComparison.OrdinalIgnoreCase));
+ }
+
+ private static string NormalizeForComparison(string name)
+ {
+ if (string.IsNullOrWhiteSpace(name))
+ {
+ return string.Empty;
+ }
+
+ return name.RemoveDiacritics();
+ }
+
+ public static IEnumerable<string> DistinctNames(this IEnumerable<string> names)
+ {
+ return names.DistinctBy(NormalizeForComparison, StringComparer.OrdinalIgnoreCase);
+ }
+ }
+}