using dnlib.DotNet; using System.Text; namespace ReCodeIt.Utils; public static class SysTypeExtentions { /// <summary> /// Returns a string trimmed after any non letter character /// </summary> /// <param name="str"></param> /// <returns>Trimmed string if special character found, or the original string</returns> public static string TrimAfterSpecialChar(this UTF8String str) { var sb = new StringBuilder(); var trimChars = new char[] { '`', '[', ']' }; foreach (char c in str.ToString()) { if (trimChars.Contains(c)) { } if (char.IsLetter(c) || char.IsDigit(c)) { sb.Append(c); } else { return sb.ToString(); } } if (sb.Length > 0) { return sb.ToString(); } return str; } /// <summary> /// Returns a string trimmed after any non letter character /// </summary> /// <param name="str"></param> /// <returns>Trimmed string if special character found, or the original string</returns> public static string TrimAfterSpecialChar(this string str) { var sb = new StringBuilder(); var trimChars = new char[] { '`', '[', ']' }; foreach (char c in str) { if (trimChars.Contains(c)) { } if (char.IsLetter(c) || char.IsDigit(c)) { sb.Append(c); } else { return sb.ToString(); } } if (sb.Length > 0) { return sb.ToString(); } return str; } /// <summary> /// Does the property or field name exist in a given list, this applies prefixes and handles capitalization. /// </summary> /// <param name="str"></param> /// <param name="list"></param> /// <returns>True if it in the list</returns> public static bool IsFieldOrPropNameInList(this UTF8String str, List<string> list) { if (str.Trim().StartsWith("_")) { str = str.Replace("_", ""); } var result = list.Any(item => str.StartsWith(item, StringComparison.CurrentCultureIgnoreCase)); return result; } /// <summary> /// Does the property or field name exist in a given list, this applies prefixes and handles capitalization. /// </summary> /// <param name="str"></param> /// <param name="list"></param> /// <returns>True if it in the list</returns> public static bool IsFieldOrPropNameInList(this string str, List<string> list) { if (str.Trim().StartsWith("_")) { str = str.Replace("_", ""); } var result = list.Any(item => str.StartsWith(item, StringComparison.CurrentCultureIgnoreCase)); return result; } }