using System; using System.Globalization; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Text.RegularExpressions; namespace MediaBrowser.Common.Extensions { /// /// Class BaseExtensions /// public static class BaseExtensions { /// /// Strips the HTML. /// /// The HTML string. /// System.String. public static string StripHtml(this string htmlString) { // http://stackoverflow.com/questions/1349023/how-can-i-strip-html-from-text-in-net const string pattern = @"<(.|\n)*?>"; return Regex.Replace(htmlString, pattern, string.Empty).Trim(); } /// /// Replaces the specified STR. /// /// The STR. /// The old value. /// The new value. /// The comparison. /// System.String. public static string Replace(this string str, string oldValue, string newValue, StringComparison comparison) { var sb = new StringBuilder(); var previousIndex = 0; var index = str.IndexOf(oldValue, comparison); while (index != -1) { sb.Append(str.Substring(previousIndex, index - previousIndex)); sb.Append(newValue); index += oldValue.Length; previousIndex = index; index = str.IndexOf(oldValue, index, comparison); } sb.Append(str.Substring(previousIndex)); return sb.ToString(); } public static string RemoveDiacritics(this string text) { return String.Concat( text.Normalize(NormalizationForm.FormD) .Where(ch => CharUnicodeInfo.GetUnicodeCategory(ch) != UnicodeCategory.NonSpacingMark) ).Normalize(NormalizationForm.FormC); } /// /// Gets the M d5. /// /// The STR. /// Guid. public static Guid GetMD5(this string str) { using (var provider = MD5.Create()) { return new Guid(provider.ComputeHash(Encoding.Unicode.GetBytes(str))); } } /// /// Gets the MB id. /// /// The STR. /// The type. /// Guid. /// type [Obsolete("Use LibraryManager.GetNewItemId")] public static Guid GetMBId(this string str, Type type) { if (type == null) { throw new ArgumentNullException("type"); } var key = type.FullName + str.ToLower(); return key.GetMD5(); } } }