| | |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.ComponentModel.DataAnnotations.Schema; |
| | |
| | | return (reslutMsg == "" ? true : false, reslutMsg, value); |
| | | } |
| | | |
| | | public static List<(bool, string, object)> ValidationValueForDbType(this PropertyInfo propertyInfo, params object[] values) |
| | | { |
| | | List<(bool, string, object)> result = new List<(bool, string, object)>(); |
| | | foreach (object value in values) |
| | | { |
| | | result.Add(propertyInfo.ValidationVal(value)); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | private static readonly Dictionary<Type, string> ProperWithDbType = new Dictionary<Type, string>() { |
| | | { typeof(string),SqlDbTypeName.NVarChar }, |
| | | { typeof(DateTime),SqlDbTypeName.DateTime}, |
| | |
| | | } |
| | | continue; |
| | | } |
| | | string str = dic[property.Name.FirstLetterToLower()].ToString(); |
| | | //将所有空值设置为null |
| | | if (dic[property.Name.FirstLetterToLower()] != null && str == string.Empty) |
| | | dic[property.Name.FirstLetterToLower()] = null; |
| | | if(dic[property.Name.FirstLetterToLower()] != null) |
| | | { |
| | | string str = dic[property.Name.FirstLetterToLower()].ToString(); |
| | | //将所有空值设置为null |
| | | if (str == string.Empty) |
| | | dic[property.Name.FirstLetterToLower()] = null; |
| | | } |
| | | |
| | | } |
| | | return string.Empty; |
| | | } |
| | | |
| | | public static string ValidateDicInEntity(this Type typeinfo, List<Dictionary<string, object>> dicList, bool removerKey, string[] ignoreFields = null) |
| | | { |
| | | PropertyInfo[] propertyInfo = typeinfo.GetProperties(); |
| | | string reslutMsg = string.Empty; |
| | | foreach (Dictionary<string, object> dic in dicList) |
| | | { |
| | | reslutMsg = typeinfo.ValidateDicInEntity(dic, removerKey, propertyInfo, ignoreFields); |
| | | if (!string.IsNullOrEmpty(reslutMsg)) |
| | | return reslutMsg; |
| | | } |
| | | return reslutMsg; |
| | | } |
| | | |
| | | public static string GetKeyName(this Type typeinfo) |
| | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public static Type GetDetailType(this Type typeinfo) |
| | | { |
| | | PropertyInfo[] properties = typeinfo.GetProperties(); |
| | | foreach (PropertyInfo property in properties) |
| | | { |
| | | Navigate? navigate = property.GetCustomAttribute<Navigate>(); |
| | | if (navigate is not null) |
| | | { |
| | | if (navigate.GetNavigateType() == NavigateType.OneToOne) |
| | | return property.PropertyType; |
| | | else |
| | | return property.PropertyType.GenericTypeArguments[0]; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public static string GetMainIdByDetail(this Type typeinfo) |
| | | { |
| | | PropertyInfo[] properties = typeinfo.GetProperties(); |
| | | foreach (PropertyInfo property in properties) |
| | | { |
| | | Navigate? navigate = property.GetCustomAttribute<Navigate>(); |
| | | if (navigate is not null) |
| | | { |
| | | return navigate.GetName(); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public static void SetDetailId<T>(this Type typeinfo, T enetiy, object id, string name) |
| | | { |
| | | PropertyInfo property = typeinfo.GetProperty(name); |
| | | if (property != null) |
| | | { |
| | | property.SetValue(enetiy, id); |
| | | } |
| | | } |
| | | |
| | | public static PropertyInfo? GetNavigatePro(this Type typeinfo) |
| | | { |
| | | PropertyInfo[] properties = typeinfo.GetProperties(); |
| | | foreach (PropertyInfo property in properties) |
| | | { |
| | | Navigate? navigate = property.GetCustomAttribute<Navigate>(); |
| | | if (navigate is not null) |
| | | { |
| | | return property; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public static object GetPropertyValue<T>(this Type typeinfo, T data, string propertyName) |
| | | { |
| | | if (typeinfo != typeof(T)) |
| | | return null; |
| | | |
| | | PropertyInfo? property = typeinfo.GetProperty(propertyName); |
| | | if (property != null) |
| | | { |
| | | return property.GetValue(data); |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | | } |