123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- using ComponentFactory.Krypton.Toolkit;
- using NXWMS.Client.Model.AppModels.Result;
- using NXWMS.Client.Model.CoreModels;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using NXWMS.Client.Code.Extends;
- using System.Reflection;
- using System.Data;
- using System.ComponentModel;
- namespace NXWMS.Commons
- {
- /// <summary>
- /// 通用工具
- /// </summary>
- public static class CommonUtil
- {
- /// <summary>
- /// 客户端字段排序转换
- /// </summary>
- /// <param name="container"></param>
- /// <param name="dataView"></param>
- /// <param name="row"></param>
- public static Dictionary<string, string> GetFieldOrderDic(this List<ClientFieldOrderResult> clientFieldOrderList)
- {
- if (clientFieldOrderList != null)
- {
- Dictionary<string, string> map = new Dictionary<string, string>();
- foreach (var item in clientFieldOrderList)
- {
- map.Add(item.FieldName, item.FieldDesc);
- }
- return map;
- }
- else
- {
- return new Dictionary<string, string>();
- }
- }
- /// <summary>
- /// 字典追加数据
- /// </summary>
- /// <param name="keyValues"></param>
- /// <param name="key"></param>
- /// <param name="value"></param>
- /// <returns></returns>
- public static Dictionary<string, string> AddKeyValue(this Dictionary<string, string> keyValues, string key, string value)
- {
- if (!keyValues.ContainsKey(key))
- {
- keyValues.Add(key, value);
- }
- return keyValues;
- }
-
- /// <summary>
- /// 枚举列表Code FieldValue
- /// </summary>
- /// <typeparam name="TEnum"></typeparam>
- /// <param name="fieldValueList"></param>
- /// <returns></returns>
- public static List<FieldValue> GetFieldValueCodeList<TEnum>(this List<FieldValue> fieldValueList) where TEnum : Enum
- {
- foreach (int value in Enum.GetValues(typeof(TEnum)))
- {
- string strName = Enum.GetName(typeof(TEnum), value);
- fieldValueList.Add(new FieldValue
- {
- Code = strName,
- Name = ((TEnum)Enum.Parse(typeof(TEnum), strName)).Description()
- });
- }
- return fieldValueList;
- }
- /// <summary>
- /// 枚举列表Id FieldValue
- /// </summary>
- /// <typeparam name="TEnum"></typeparam>
- /// <param name="fieldValueList"></param>
- /// <returns></returns>
- public static List<FieldValue> GetFieldValueIdList<TEnum>(this List<FieldValue> fieldValueList) where TEnum : Enum
- {
- foreach (int value in Enum.GetValues(typeof(TEnum)))
- {
- string strName = Enum.GetName(typeof(TEnum), value);
- fieldValueList.Add(new FieldValue
- {
- Id = value.ToString(),
- Name = ((TEnum)Enum.Parse(typeof(TEnum), strName)).Description()
- });
- }
- return fieldValueList;
- }
- /// <summary>
- /// 获取obj对象与枚举比对整数结果
- /// </summary>
- /// <typeparam name="TEnum"></typeparam>
- /// <param name="fieldValueList"></param>
- /// <returns></returns>
- public static int? GetEnumInt<TEnum>(this object obj) where TEnum : Enum
- {
- if (obj == null)
- {
- return null;
- }
- Type type = typeof(TEnum);
- foreach (FieldInfo x in type.GetFields(BindingFlags.Public | BindingFlags.Static))
- {
- TEnum item = (TEnum)x.GetValue(null);
- if (item.Description() == obj.ToString())
- {
- return Convert.ToInt32(x.GetValue(null));
- }
- }
- return null;
- }
- /// <summary>
- /// 获取枚举描述信息
- /// </summary>
- /// <param name="en"></param>
- /// <returns></returns>
- private static string Description(Enum en)
- {
- Type type = en.GetType();
- MemberInfo[] memInfo = type.GetMember(en.ToString());
- if (memInfo != null && memInfo.Length > 0)
- {
- object[] attrs = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
- if (attrs != null && attrs.Length > 0)
- return ((DescriptionAttribute)attrs[0]).Description;
- }
- return en.ToString();
- }
- /// <summary>
- /// 获取obj对象与枚举比对字符串结果
- /// </summary>
- /// <typeparam name="TEnum"></typeparam>
- /// <param name="fieldValueList"></param>
- /// <returns></returns>
- public static string GetEnumString<TEnum>(this object obj) where TEnum : Enum
- {
- if (obj == null)
- {
- return null;
- }
- Type type = typeof(TEnum);
- foreach (FieldInfo x in type.GetFields(BindingFlags.Public | BindingFlags.Static))
- {
- TEnum item = (TEnum)x.GetValue(null);
- if (item.Description() == obj.ToString())
- {
- return x.GetValue(null).ToString();
- }
- }
- return null;
- }
- /// <summary>
- /// 实体列表code FieldValue
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="fieldValueList"></param>
- /// <param name="entityList"></param>
- /// <param name="code"></param>
- /// <param name="name"></param>
- /// <returns></returns>
- public static List<FieldValue> GetFieldValueCodeList<T>(this List<FieldValue> fieldValueList, List<T> entityList,
- string code, string name) where T : class
- {
- foreach (var item in entityList)
- {
- var codeInfo = typeof(T).GetProperty(code);
- var nameInfo = typeof(T).GetProperty(name);
- fieldValueList.Add(new FieldValue
- {
- Code = codeInfo.GetValue(item, null).ToString(),
- Name = nameInfo.GetValue(item, null).ToString()
- });
- }
- return fieldValueList;
- }
- /// <summary>
- /// 实体列表id FieldValue
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="fieldValueList"></param>
- /// <param name="entityList"></param>
- /// <param name="id"></param>
- /// <param name="name"></param>
- /// <returns></returns>
- public static List<FieldValue> GetFieldValueIdList<T>(this List<FieldValue> fieldValueList, List<T> entityList,
- string id, string name) where T : class
- {
- foreach (var item in entityList)
- {
- var idInfo = typeof(T).GetProperty(id);
- var nameInfo = typeof(T).GetProperty(name);
- fieldValueList.Add(new FieldValue
- {
- Id = idInfo.GetValue(item, null).GetObjectToString(),
- Name = nameInfo.GetValue(item, null).GetObjectToString(),
- });
- }
- return fieldValueList;
- }
-
- /// <summary>
- /// object 选择返回值
- /// </summary>
- /// <param name="obj"></param>
- /// <returns></returns>
- public static string GetObjectToString(this object obj)
- {
- if (obj == null)
- {
- return string.Empty;
- }
- if (obj.ToString() == "")
- {
- return string.Empty;
- }
- return obj.ToString();
- }
- /// <summary>
- /// object 选择返回值 整数
- /// </summary>
- /// <param name="obj"></param>
- /// <returns></returns>
- public static int? GetObjectToInt(this object obj)
- {
- if (obj == null)
- {
- return (int?)null;
- }
- if (obj.ToString() == "")
- {
- return (int?)null;
- }
- return Convert.ToInt32(obj);
- }
- /// <summary>
- /// object 选择返回值 布尔
- /// </summary>
- /// <param name="obj"></param>
- /// <returns></returns>
- public static bool GetObjectToBoolean(this object obj)
- {
- if (obj == null)
- {
- return false;
- }
- if (obj.ToString() == "")
- {
- return false;
- }
- return Convert.ToBoolean(obj);
- }
- /// <summary>
- /// object 选择返回值
- /// </summary>
- /// <param name="obj"></param>
- /// <param name="trueValue">对应True的值,其他未false</param>
- /// <returns></returns>
- public static bool GetObjectToBoolean(this object obj, string trueValue)
- {
- if (obj == null)
- {
- return false;
- }
- if (obj.ToString() == "")
- {
- return false;
- }
- if (obj.ToString().ToLower() == trueValue.ToLower())
- {
- return true;
- }
- return false;
- }
- }
- }
|