using System; 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(); } /// /// 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. 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(); } /// /// Gets the attribute value. /// /// The STR. /// The attrib. /// System.String. /// attrib public static string GetAttributeValue(this string str, string attrib) { if (string.IsNullOrEmpty(str)) { throw new ArgumentNullException("str"); } if (string.IsNullOrEmpty(attrib)) { throw new ArgumentNullException("attrib"); } string srch = "[" + attrib + "="; int start = str.IndexOf(srch, StringComparison.OrdinalIgnoreCase); if (start > -1) { start += srch.Length; int end = str.IndexOf(']', start); return str.Substring(start, end - start); } return null; } } }