using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; namespace SqlSugar { internal static class ValidateExtensions { public static bool IsInRange(this int thisValue, int begin, int end) { return thisValue >= begin && thisValue <= end; } public static bool IsInRange(this DateTime thisValue, DateTime begin, DateTime end) { return thisValue >= begin && thisValue <= end; } public static bool IsIn(this T thisValue, params T[] values) { return values.Contains(thisValue); } public static bool IsContainsIn(this string thisValue, params string[] inValues) { return inValues.Any(it => thisValue.Contains(it)); } public static bool IsNullOrEmpty(this object thisValue) { if (thisValue == null || thisValue == DBNull.Value) return true; return thisValue.ToString() == ""; } public static bool IsNullOrEmpty(this Guid? thisValue) { if (thisValue == null) return true; return thisValue == Guid.Empty; } public static bool IsNullOrEmpty(this Guid thisValue) { if (thisValue == null) return true; return thisValue == Guid.Empty; } public static bool IsNullOrEmpty(this IEnumerable thisValue) { if (thisValue == null || thisValue.Count() == 0) return true; return false; } public static bool HasValue(this object thisValue) { if (thisValue == null || thisValue == DBNull.Value) return false; return thisValue.ToString() != ""; } public static bool HasValue(this IEnumerable thisValue) { if (thisValue == null || thisValue.Count() == 0) return false; return true; } public static bool IsValuable(this IEnumerable> thisValue) { if (thisValue == null || thisValue.Count() == 0) return false; return true; } public static bool IsZero(this object thisValue) { return (thisValue == null || thisValue.ToString() == "0"); } public static bool IsInt(this object thisValue) { if (thisValue == null) return false; return Regex.IsMatch(thisValue.ToString(), @"^\d+$"); } /// public static bool IsNoInt(this object thisValue) { if (thisValue == null) return true; return !Regex.IsMatch(thisValue.ToString(), @"^\d+$"); } public static bool IsMoney(this object thisValue) { if (thisValue == null) return false; double outValue = 0; return double.TryParse(thisValue.ToString(), out outValue); } public static bool IsGuid(this object thisValue) { if (thisValue == null) return false; var outValue = Guid.Empty; return Guid.TryParse(thisValue.ToString(), out outValue); } public static bool IsDate(this object thisValue) { if (thisValue == null) return false; var outValue = DateTime.MinValue; return DateTime.TryParse(thisValue.ToString(), out outValue); } public static bool IsEamil(this object thisValue) { if (thisValue == null) return false; return Regex.IsMatch(thisValue.ToString(), @"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"); } public static bool IsMobile(this object thisValue) { if (thisValue == null) return false; return Regex.IsMatch(thisValue.ToString(), @"^\d{11}$"); } public static bool IsTelephone(this object thisValue) { if (thisValue == null) return false; return System.Text.RegularExpressions.Regex.IsMatch(thisValue.ToString(), @"^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}$"); } public static bool IsIDcard(this object thisValue) { if (thisValue == null) return false; return System.Text.RegularExpressions.Regex.IsMatch(thisValue.ToString(), @"^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$"); } public static bool IsFax(this object thisValue) { if (thisValue == null) return false; return System.Text.RegularExpressions.Regex.IsMatch(thisValue.ToString(), @"^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$"); } public static bool IsMatch(this object thisValue, string pattern) { if (thisValue == null) return false; var reg = new Regex(pattern); return reg.IsMatch(thisValue.ToString()); } public static bool IsAnonymousType(this Type type) { var typeName = type.Name; return typeName.Contains("<>") && typeName.Contains("__") && typeName.Contains("AnonymousType"); } public static bool IsCollectionsList(this string thisValue) { return (thisValue + "").StartsWith("System.Collections.Generic.List"); } public static bool IsStringArray(this string thisValue) { return (thisValue + "").IsMatch(@"System\.[a-z,A-Z,0-9]+?\[\]"); } public static bool IsEnumerable(this string thisValue) { return (thisValue + "").StartsWith("System.Linq.Enumerable"); } public static Type StringType = typeof (string); public static bool IsClass(this Type thisValue) { return thisValue != StringType && thisValue.IsEntity(); } } }