/// <summary>
 /// đổi mật khẩu
 /// </summary>
 /// <param name="iduser">id người dùng</param>
 /// <param name="oldpassword">mật khẩu cũ</param>
 /// <param name="password">mật khẩu mới</param>
 /// <returns></returns>
 public BaseModel <object> ChangePass(string iduser, string oldpassword, string password)
 {
     if (string.IsNullOrEmpty(password) || password.Length < 6)
     {
         return(JsonResultCommon.Custom("Mật khẩu mới quá ngắn"));
     }
     using (DpsConnection Conn = new DpsConnection(_config.ConnectionString))
     {
         var Tb = Conn.CreateDataTable("select PasswordHash from Dps_User where UserID = @Id", new SqlConditions()
         {
             { "Id", iduser }
         });
         if (Tb == null || Tb.Rows.Count != 1)
         {
             return(JsonResultCommon.KhongTonTai());
         }
         if (!oldpassword.Equals(DecryptPassword(Tb.Rows[0]["PasswordHash"].ToString())))
         {
             return(JsonResultCommon.Custom("Mật khẩu cũ không chính xác"));
         }
         string newpass = EncryptPassword(password);
         var    val     = new Hashtable();
         val.Add("PasswordHash", newpass);
         val.Add("LastUpdatePass", DateTime.Now);
         val.Add("GiaHan", 0);
         if (Conn.Update(val, new SqlConditions {
             new SqlCondition("UserID", iduser)
         }, "Dps_User") != 1)
         {
             return(JsonResultCommon.SQL(Conn.LastError.Message));
         }
         return(JsonResultCommon.ThanhCong());
     }
 }
 /// <summary>
 /// upload hình ảnh giữ nguyên size hoặc scale 512
 /// </summary>
 /// <param name="strBase64"></param>
 /// <param name="filename">filename bao gồm .extension</param>
 /// <param name="folder">Thư mục trong rootupload chứa file phân cấp bằng dấu /</param>
 /// <param name="ContentRootPath">_hostingEnvironment.ContentRootPath</param>
 /// <param name="filepath">file path sau khi upload trả về</param>
 /// <param name="keepSize"></param>
 /// <returns></returns>
 ///
 public static object UploadImageAvatar(string strBase64, string filename, string folder, string ContentRootPath, ref string filepath, bool keepSize = true)
 {
     error = "";
     if (string.IsNullOrEmpty(strBase64))
     {
         error = "Không có file dữ liệu";
         return(false);
     }
     try
     {
         byte[] imageBytes = Convert.FromBase64String(strBase64);
         if (imageBytes.Length > Constant.MaxSize)
         {
             error = "File hình không được lớn hơn " + Constant.MaxSize / 1000 + "MB";
             return(false);
         }
         string path      = Constant.RootAvatar + folder;
         string Base_Path = Path.Combine(ContentRootPath, path);
         if (!Directory.Exists(Base_Path)) //tạo thư mục nếu chưa có
         {
             Directory.CreateDirectory(Base_Path);
         }
         filename = checkFilename(filename, path);
         Image img = Base64ToImage(strBase64);
         if (keepSize)
         {
             img.Save(Base_Path + filename);
         }
         else
         {
             int maxsize = img.Height > img.Width ? img.Width : img.Height;
             if (maxsize < 64)
             {
                 error = "Kích thước hình ảnh quá nhỏ";
                 return(false);
             }
             maxsize = maxsize > 512 ? 512 : maxsize;
             using (MemoryStream sr = new MemoryStream())
             {
                 MemoryStream d = new MemoryStream(imageBytes);
                 if (!Directory.Exists(Base_Path)) //tạo thư mục nếu chưa có
                 {
                     Directory.CreateDirectory(Base_Path);
                 }
                 var rs = DpsLibs.Common.IProcess.Resize(d, maxsize, maxsize, Base_Path, filename, out filename, System.Drawing.Imaging.ImageFormat.Png, false);//nén hình và lưu file
                 if (rs != DpsLibs.Common.ResizeResult.Success && rs != DpsLibs.Common.ResizeResult.Nochange)
                 {
                     error = "Upload hình ảnh thất bại";
                     return(false);
                 }
             }
         }
         //string s_name = Path.GetFileName(filename);
         filepath = folder + "/" + filename;
         return(filename);
     }
     catch (Exception ex)
     {
         error = "Có gì đó không đúng, vui lòng thử lại sau";
         return(JsonResultCommon.ThatBai(error));
     }
 }