|
|
@@ -1,237 +0,0 @@
|
|
|
-using Log;
|
|
|
-using SqlSugar;
|
|
|
-using System;
|
|
|
-using System.Collections.Generic;
|
|
|
-using System.ComponentModel;
|
|
|
-using System.Data;
|
|
|
-using System.Linq;
|
|
|
-using System.Reflection;
|
|
|
-using System.Security.Cryptography;
|
|
|
-
|
|
|
-namespace WCS.Core.Expands
|
|
|
-{
|
|
|
- /// <summary>
|
|
|
- ///
|
|
|
- /// </summary>
|
|
|
- public static class TypeExtension
|
|
|
- {
|
|
|
- /// <summary>
|
|
|
- /// 将字符串转换为short
|
|
|
- /// </summary>
|
|
|
- /// <param name="value">需要转换的字符串</param>
|
|
|
- /// <returns></returns>
|
|
|
- public static short ToShort(this string value)
|
|
|
- {
|
|
|
- return Convert.ToInt16(value);
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 将int转换为short
|
|
|
- /// </summary>
|
|
|
- /// <param name="value">需要转换的字符串</param>
|
|
|
- /// <returns></returns>
|
|
|
- public static short ToShort(this int value)
|
|
|
- {
|
|
|
- return Convert.ToInt16(value);
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 将decimal转换为short
|
|
|
- /// </summary>
|
|
|
- /// <param name="value">需要转换的字符串</param>
|
|
|
- /// <returns></returns>
|
|
|
- public static short ToShort(this decimal value)
|
|
|
- {
|
|
|
- return Convert.ToInt16(value);
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 将字符串转换为int
|
|
|
- /// </summary>
|
|
|
- /// <param name="value">需要转换的字符串</param>
|
|
|
- /// <returns></returns>
|
|
|
- public static int ToInt(this string value)
|
|
|
- {
|
|
|
- return Convert.ToInt32(value);
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 判断值为奇数/偶数
|
|
|
- /// </summary>
|
|
|
- /// <param name="value">需要判断的值</param>
|
|
|
- /// <returns> true:是奇数 false:是偶数</returns>
|
|
|
- public static bool OddNumberOrEven(this short value)
|
|
|
- {
|
|
|
- return value % 2 != 0;
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 获取short类型Code,只限设备组
|
|
|
- /// </summary>
|
|
|
- /// <param name="value"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public static short GetShortCode(this string value)
|
|
|
- {
|
|
|
- return value.Replace("G", "").ToShort();
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 数据映射
|
|
|
- /// </summary>
|
|
|
- /// <typeparam name="D"></typeparam>
|
|
|
- /// <typeparam name="S"></typeparam>
|
|
|
- /// <param name="s"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public static D Mapper<D, S>(S s)
|
|
|
- {
|
|
|
- D d = Activator.CreateInstance<D>();
|
|
|
-
|
|
|
- var sType = s.GetType();
|
|
|
- var dType = typeof(D);
|
|
|
- foreach (PropertyInfo sP in sType.GetProperties())
|
|
|
- {
|
|
|
- foreach (PropertyInfo dP in dType.GetProperties())
|
|
|
- {
|
|
|
- if (dP.Name == sP.Name)
|
|
|
- {
|
|
|
- dP.SetValue(d, sP.GetValue(s));
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return d;
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 获取字典
|
|
|
- /// </summary>
|
|
|
- /// <typeparam name="T1"></typeparam>
|
|
|
- /// <typeparam name="T2"></typeparam>
|
|
|
- /// <typeparam name="T3"></typeparam>
|
|
|
- /// <param name="t3"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public static Dictionary<string, object> EntityClassToDictionary<T>(T t)
|
|
|
- {
|
|
|
- Type type = typeof(SugarColumn);
|
|
|
- Dictionary<string, object> d = new Dictionary<string, object>();
|
|
|
-
|
|
|
- var sType = t.GetType();
|
|
|
- foreach (PropertyInfo sP in sType.GetProperties())
|
|
|
- {
|
|
|
- if (sP.CustomAttributes.Any(v => v.AttributeType == type) && sP.Name != "VER" && sP.Name != "ID")
|
|
|
- {
|
|
|
- d.Add(sP.Name, sP.GetValue(t));
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return d;
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 获取MD5字符串
|
|
|
- /// </summary>
|
|
|
- /// <param name="myString"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public static string GetMD5(this string myString)
|
|
|
- {
|
|
|
- MD5 md5 = MD5.Create();
|
|
|
- byte[] fromData = System.Text.Encoding.Unicode.GetBytes(myString);
|
|
|
- byte[] targetData = md5.ComputeHash(fromData);
|
|
|
- string byte2String = null;
|
|
|
-
|
|
|
- for (int i = 0; i < targetData.Length; i++)
|
|
|
- {
|
|
|
- byte2String += targetData[i].ToString("x");
|
|
|
- }
|
|
|
-
|
|
|
- return byte2String;
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// DataTable转换成实体类
|
|
|
- /// </summary>
|
|
|
- /// <typeparam name="T"></typeparam>
|
|
|
- /// <param name="dt"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public static List<object> TableToEntity(this DataTable dt, string typeName)
|
|
|
- {
|
|
|
- List<object> list = new List<object>();
|
|
|
- try
|
|
|
- {
|
|
|
- foreach (DataRow row in dt.Rows)
|
|
|
- {
|
|
|
- Type entity = Type.GetType(typeName);
|
|
|
- PropertyInfo[] pArray = entity.GetType().GetProperties();
|
|
|
-
|
|
|
- foreach (PropertyInfo p in pArray)
|
|
|
- {
|
|
|
- if (dt.Columns.Contains(p.Name))
|
|
|
- {
|
|
|
- if (!p.CanWrite) continue;
|
|
|
- var value = row[p.Name];
|
|
|
- if (value != DBNull.Value)
|
|
|
- {
|
|
|
- Type targetType = p.PropertyType;
|
|
|
- Type convertType = targetType;
|
|
|
- if (targetType.IsGenericType && targetType.GetGenericTypeDefinition().Equals(typeof(Nullable<>)))
|
|
|
- {
|
|
|
- //可空类型
|
|
|
- NullableConverter nullableConverter = new NullableConverter(targetType);
|
|
|
- convertType = nullableConverter.UnderlyingType;
|
|
|
- }
|
|
|
- if (!string.IsNullOrEmpty(convertType.FullName) && !string.IsNullOrEmpty(value.ToString()))
|
|
|
- {
|
|
|
- value = Convert.ChangeType(value, convertType);
|
|
|
- }
|
|
|
- switch (convertType.FullName)
|
|
|
- {
|
|
|
- case "System.Decimal":
|
|
|
- p.SetValue(entity, Convert.ToDecimal(value), null);
|
|
|
- break;
|
|
|
-
|
|
|
- case "System.String":
|
|
|
- p.SetValue(entity, Convert.ToString(value), null);
|
|
|
- break;
|
|
|
-
|
|
|
- case "System.Int32":
|
|
|
- p.SetValue(entity, Convert.ToInt32(value), null);
|
|
|
- break;
|
|
|
-
|
|
|
- case "System.Int64":
|
|
|
- p.SetValue(entity, Convert.ToInt64(value), null);
|
|
|
- break;
|
|
|
-
|
|
|
- case "System.Int16":
|
|
|
- p.SetValue(entity, Convert.ToInt16(value), null);
|
|
|
- break;
|
|
|
-
|
|
|
- case "System.Double":
|
|
|
- p.SetValue(entity, Convert.ToDouble(value), null);
|
|
|
- break;
|
|
|
-
|
|
|
- case "System.Single":
|
|
|
- p.SetValue(entity, Convert.ToSingle(value), null);
|
|
|
- break;
|
|
|
-
|
|
|
- case "System.DateTime":
|
|
|
- p.SetValue(entity, Convert.ToDateTime(value), null);
|
|
|
- break;
|
|
|
-
|
|
|
- default:
|
|
|
- p.SetValue(entity, value, null);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- list.Add(entity);
|
|
|
- }
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- InfoLog.INFO_ERROR("Table转换实体类失败:" + ex.Message);
|
|
|
- }
|
|
|
- return list;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|