bremen_short_url/App_Code/userdata.cs

221 lines
6.2 KiB
C#

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;
/// <summary>
/// userdata 的摘要描述
/// </summary>
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;
}
}
}