/// <summary> /// 加密验证码 /// </summary> /// <param name="text">验证码</param> /// <returns></returns> private static string EncryptVcCode(string text) { string clientId = Guid.NewGuid().ToString(); string code = WuYao.GetMd5(text.ToUpper()); string plainText = clientId + "$" + code + "$" + Rand.Str_char(6); SqlHelper _sql = new SqlHelper(); _sql.OpenDb(); _sql.Execute(string.Format("insert into tbl_loginverifycode values('{0}','{1}',{2})", clientId, text, DateTime.UtcNow.AddMinutes(3).Ticks)); _sql.CloseDb(); return(WuYao.AesEncrypt(plainText)); }
/// <summary> /// DataTable转List /// </summary> /// <typeparam name="T">模板</typeparam> /// <param name="dt">DataTable</param> /// <param name="model">数据</param> /// <returns></returns> public static List <T> ToModelList <T>(this DataTable dt) where T : new () { try { if (dt == null || dt.Rows.Count == 0) { return(new List <T>()); } List <T> ts = new List <T>(); Type type = typeof(T); string tempName = string.Empty; if (dt.Columns.IndexOf("Sno") <= -1) { dt.Columns.Add("Sno", typeof(int)); } int index = 1; foreach (DataRow dr in dt.Rows) { dr["Sno"] = index; T t = new T(); // 获得此模型的公共属性 PropertyInfo[] propertys = t.GetType().GetProperties(); foreach (PropertyInfo pi in propertys) { tempName = pi.Name; if (dt.Columns.Contains(tempName)) { if (!pi.CanWrite) { continue; } object value = dr[tempName]; if (value is DBNull) { continue; } if (pi.PropertyType.Name.ToLower() == "string") { if (value.GetType().Name.ToLower() == "guid") { pi.SetValue(t, value.ToString(), null); } else if (value.GetType().Name.ToLower() == "datetime") { pi.SetValue(t, Convert.ToDateTime(value).ToString("yyyy-MM-dd HH:mm:ss"), null); } else { if (dt.Columns[tempName].Caption.ToLower() == tempName.ToLower()) { pi.SetValue(t, Convert.ToString(value), null); } else if (dt.Columns[tempName].Caption == Constants.EncryptColoumn) { pi.SetValue(t, WuYao.AesDecrypt(Convert.ToString(value)), null); } else if (dt.Columns[tempName].Caption == Constants.DecryptColoumn) { pi.SetValue(t, WuYao.AesEncrypt(Convert.ToString(value)), null); } else { pi.SetValue(t, Convert.ToString(value), null); } } } else if (pi.PropertyType.Name.ToLower() == "lookupmodel") { if (dt.Columns.Contains(string.Concat(tempName, "Name"))) { object valuename = dr[string.Concat(tempName, "Name")]; LookUpModel lum = new LookUpModel(); if (valuename != DBNull.Value) { lum.Id = Convert.ToString(value); lum.Name = Convert.ToString(valuename); pi.SetValue(t, lum, null); } else { pi.SetValue(t, lum, null); //throw new Exception(string.Format("The value of column '{0}' is null!", string.Concat(tempName, "Name"))); } } else { throw new Exception(string.Format("The column '{0}' dose not exist!", string.Concat(tempName, "Name"))); } } else if (pi.PropertyType.Name.ToLower() == "int32" || pi.PropertyType.Name.ToLower() == "nullable`1") { pi.SetValue(t, Convert.ToInt32(value), null); } else if (pi.PropertyType.Name.ToLower() == "decimal") { pi.SetValue(t, Convert.ToDecimal(value), null); } else if (pi.PropertyType.Name.ToLower() == "datetime") { pi.SetValue(t, Convert.ToDateTime(value), null); } else if (pi.PropertyType.Name.ToLower() == "boolean") { pi.SetValue(t, Convert.ToBoolean(value), null); } else if (pi.PropertyType.Name.ToLower() == "guid") { pi.SetValue(t, Guid.Parse(value.ToString()), null); } } } ts.Add(t); index++; } return(ts); } catch (Exception ex) { throw new Exception(ex.Message, ex); } }