using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.SqlClient; using System.Data; using System.Configuration; using System.Runtime.Serialization.Json; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Web.Services.Protocols; using System.Security.Cryptography; using System.Text; using System.Web.SessionState; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Runtime.Serialization; /// /// userdata 的摘要描述 /// public class userdata { autoBindDataTable userSQL; DataRow userRow; public string user_uid = ""; public string user_id = ""; public string user_name = ""; public string user_email = ""; public string user_onjob = "N"; public string user_type = "Y"; public string user_perm = "N"; public string user_pic = ""; //public string user_picurl = ""; private string _user_pwd = ""; private int user_pic_version = 1; private string _baseurl = HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath.TrimEnd('/'); [IgnoreDataMember] private Image _picImage; public string update_result = ""; public string user_lastlogin = ""; private Boolean imageChange = false; private Boolean pwdChange = false; public userdata() { // // TODO: 在這裡新增建構函式邏輯 // string userStr = string.Format("select * from users where user_sn = -1"); userSQL = new autoBindDataTable(userStr); userRow = userSQL.newRow; userSQL.dataRows.Add(userRow); user_uid = globalClass.CreateRandomCode(16); userRow["user_uid"] = user_uid; } public userdata(DataRow userRow) { user_uid = userRow["user_uid"].ToString(); user_id = userRow["user_id"].ToString(); user_name = userRow["user_name"].ToString(); user_email = userRow["user_email"].ToString(); user_type = userRow["user_type"].ToString(); user_perm = userRow["user_perm"].ToString(); _user_pwd = userRow["user_pwd"].ToString(); user_pic = userRow["user_pic"].ToString(); user_onjob = userRow["user_onjob"].ToString(); user_pic_version = int.Parse(userRow["user_pic_version"].ToString()); user_lastlogin = ((DateTime)userRow["user_lastlogindate"]).ToString("yyyy/MM/dd HH:mm:ss"); } public userdata(string uid) { string userStr = string.Format("select * from users where user_uid = '{0}'", uid); userSQL = new autoBindDataTable(userStr); if (userSQL.dataRows.Count == 0) { throw new Exception("無此 uid 使用者! uid = " + uid); } userRow = userSQL.dataRows[0]; user_uid = userRow["user_uid"].ToString(); user_id = userRow["user_id"].ToString(); user_name = userRow["user_name"].ToString(); user_email = userRow["user_email"].ToString(); user_type = userRow["user_type"].ToString(); user_perm = userRow["user_perm"].ToString(); _user_pwd = userRow["user_pwd"].ToString(); user_pic = userRow["user_pic"].ToString(); user_onjob = userRow["user_onjob"].ToString(); user_pic_version = int.Parse(userRow["user_pic_version"].ToString()); user_lastlogin = ((DateTime)userRow["user_lastlogindate"]).ToString("yyyy/MM/dd HH:mm:ss"); //if (user_pic == "") //{ // user_picurl = _baseurl + "/uploads/images/avatars/unknown-profile.jpg"; //} //else { // user_picurl = _baseurl + user_pic + "?v=" + user_pic_version.ToString(); //} _picImage = globalClass.DownloadImageFromUrl(user_picurl); } public string user_picurl { set { } get { if (user_pic == "") { return _baseurl + "/BackEnd/assets/images/avatars/unknown-profile.jpg"; } else { return _baseurl + user_pic + "?v=" + user_pic_version.ToString(); } } } public Boolean updateData() { Boolean result = false; update_result = "更新失敗!"; if (imageChange) { user_pic = string.Format("/BackEnd/uploads/images/avatars/{0}.png", user_uid); string path = System.Web.HttpContext.Current.Server.MapPath("~/"); _picImage.Save(path + user_pic.Replace("/", "\\"), ImageFormat.Png); } userRow["user_name"] = user_name; userRow["user_email"] = user_email; userRow["user_id"] = user_id; userRow["user_type"] = user_type; userRow["user_perm"] = user_perm; userRow["user_pic"] = user_pic; userRow["user_pic_version"] = user_pic_version; userRow["user_onjob"] = user_onjob; if (pwdChange) { userRow["user_pwd"] = _user_pwd; } try { userSQL.updateDataTable(); update_result = "儲存成功"; result = true; } catch (Exception ex) { update_result = "儲存失敗 - " + ex.Message; result = false; } return result; } public string perm_string { set { } get { string output = "一般用戶"; switch (user_perm) { case "A": output = "系統管理員"; break; case "P": output = "專案管理員"; break; case "N": output = "一般用戶"; break; } return output; } } [IgnoreDataMember] public string user_pwd { get { return _user_pwd; } set { pwdChange = true; _user_pwd = value; } } [IgnoreDataMember] public Image pic_image { get { return _picImage; } set { imageChange = true; user_pic_version += 1; _picImage = value; } } }