StableVersion4.3/HL_FristAidPlatform_SYS/Form_UserEdit.cs

966 lines
39 KiB
C#

using DevExpress.XtraEditors;
using HL_FristAidPlatform_DTO;
using HL_FristAidPlatform_Public;
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace HL_FristAidPlatform_SYS
{
public partial class Form_UserEdit : XtraForm
{
#region 变量
/// <summary>
/// 操作标记 1:新增 2:修改
/// </summary>
private int Flag;
/// <summary>
/// 头像(转换成二进制之后数据)
/// </summary>
private string Cur_PicData = string.Empty;
/// <summary>
/// 头像图片的位图源
/// </summary>
private Bitmap Cur_ImageBitmap;
/// <summary>
/// 电子签名(转换成二进制之后数据)
/// </summary>
private string Cur_PicData_ElectronicSignature = string.Empty;
/// <summary>
/// 电子签名图片的位图源
/// </summary>
private Bitmap Cur_ImageBitmap_ElectronicSignature;
/// <summary>
/// 当前操作的用户编号
/// </summary>
private long Cur_UserID = 0;
/// <summary>
/// 用户所拥有的所属院区源
/// </summary>
private DataTable Cur_UserHospitalDT = new DataTable();
#endregion
/// <summary>
/// 窗体重载
/// </summary>
/// <param name="_flag">操作标记 1:新增 2:修改</param>
/// <param name="_userID">操作用户编号</param>
public Form_UserEdit(int _flag, long _userID = 0)
{
InitializeComponent();
//如果当前屏幕的高度不足以显示完整的弹出窗体,则缩小高度到适应当前屏幕的高度
if (PublicClass.ScreenHeight < this.Height)
{
this.Height = PublicClass.ScreenHeight;
}
if (_flag == 0)
{
Flag = 2;
}
else
{
Flag = _flag;
}
//用户编号为0时
if (_userID == 0)
{
//如果是修改
if (Flag == 2)
{
//修改当前登录用户信息
Cur_UserID = Information.User.ID;//个人信息
}
}
else
{
Cur_UserID = _userID;
}
}
/// <summary>
/// 窗体加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form_UserEdit_Load(object sender, EventArgs e)
{
BindData();
//修改--绑定详情
if (Flag == 2)
{
BindDetail();
txt_LoginName.ReadOnly = true;//不允许修改登录名
txt_Password.ReadOnly = true;//不允许直接更改密码
btn_UpdatePwd.Enabled = true;
}
}
/// <summary>
/// 窗体快捷键注册
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form_UserEdit_KeyDown(object sender, KeyEventArgs e)
{
//同时按下 Ctrl+S 时执行保存方法
if (e.KeyCode == Keys.S && e.Control)
{
btn_Save_Click(null, null);
}
if (e.KeyCode == Keys.Escape)
{
btn_Exit_Click(null, null);
}
}
#region 绑定数据
/// <summary>
/// 绑定详情
/// </summary>
private void BindDetail()
{
try
{
#region 绑定详情
DataTable DetailDT = DBHelpClass.GetDataRow(string.Format("api/admin/T_SYS_User/{0}", Cur_UserID));
if (DetailDT != null && DetailDT.Rows.Count > 0)
{
txt_LoginName.Tag = DetailDT.Rows[0]["ID"].ToString();
txt_LoginName.Text = DetailDT.Rows[0]["LoginName"].ToString();
txt_Password.Tag = DetailDT.Rows[0]["Password"].ToString();
txt_Password.Text = DetailDT.Rows[0]["Password"].ToString();
txt_FullName.Tag = DetailDT.Rows[0]["CreationDate"].ToString();
txt_FullName.Text = DetailDT.Rows[0]["FullName"].ToString();
txt_WorkNumber.Text = DetailDT.Rows[0]["WorkNumber"].ToString();
//txt_Nickname.Text = DetailDT.Rows[0]["Nickname"].ToString();
////性别
//radioGroup_Gender.EditValue = DetailDT.Rows[0]["Gender"].ToString();
//txt_Age.Text = DetailDT.Rows[0]["Age"].ToString();
txt_MobilePhone.Text = DetailDT.Rows[0]["MobilePhone"].ToString();
//txt_OfficePhone.Text = DetailDT.Rows[0]["OfficePhone"].ToString();
//科室
LUEdit_Departments.EditValue = PublicClass.ToString(DetailDT.Rows[0]["DepartmentsID"], "-1");
//职位
LUEdit_Position.EditValue = PublicClass.ToString(DetailDT.Rows[0]["PositionID"], "-1");
//txt_IdentityCard.Text = DetailDT.Rows[0]["IdentityCard"].ToString();
//txt_Address.Text = DetailDT.Rows[0]["Address"].ToString();
//txt_Email.Text = DetailDT.Rows[0]["Email"].ToString();
////生日
//time_Birthday.TimeValue = DetailDT.Rows[0]["Birthday"].ToString();
#region 图片
//头像
if (!string.IsNullOrEmpty(PublicClass.ToString(DetailDT.Rows[0]["Portrait"], "")))
{
MemoryStream ms = new MemoryStream(Convert.FromBase64String(DetailDT.Rows[0]["Portrait"].ToString()));
Image img = Image.FromStream(ms);
pictureEdit_Portrait.Image = img;
Cur_ImageBitmap = new Bitmap(img);
Cur_PicData = PublicClass.Png2String(Cur_ImageBitmap);
}
else
{
pictureEdit_Portrait.Image = null;
Cur_ImageBitmap = null;
Cur_PicData = "";
}
//电子签名
if (!string.IsNullOrEmpty(PublicClass.ToString(DetailDT.Rows[0]["ElectronicSignature"], "")))
{
MemoryStream ms = new MemoryStream(Convert.FromBase64String(DetailDT.Rows[0]["ElectronicSignature"].ToString()));
Image img = Image.FromStream(ms);
pictureEdit_ElectronicSignature.Image = img;
Cur_ImageBitmap = new Bitmap(img);
Cur_PicData = PublicClass.Png2String(Cur_ImageBitmap);
}
else
{
pictureEdit_ElectronicSignature.Image = null;
Cur_ImageBitmap_ElectronicSignature = null;
Cur_PicData_ElectronicSignature = "";
}
#endregion
radioGroup_PersonnelType.EditValue = DetailDT.Rows[0]["PersonnelType"].ToString();
//txt_Note.Text = DetailDT.Rows[0]["Note"].ToString();
ck_IsReceiveMessages.Checked = DetailDT.Rows[0]["IsReceiveMessages"].ToString() == "0" ? true : false;
}
#endregion
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "绑定详情:\r\n" + ex);
}
}
/// <summary>
/// 绑定数据
/// 下拉框
/// </summary>
private void BindData()
{
//BindGender();
BindPosition();
BindRole();
BindHospital();
BindHospitalList();
}
/// <summary>
/// 绑定性别
/// </summary>
//private void BindGender()
//{
// try
// {
// DataTable GenderDT = DBHelpClass.Get("/api/base/T_Base_Gender/GetList");
// PublicClass.BindRadioGroupData(radioGroup_Gender, GenderDT, "GenderName", "GenderCode");
// }
// catch (Exception ex)
// {
// PublicClass.WriteErrorLog(this.Text, "绑定性别:\r\n" + ex);
// }
//}
/// <summary>
/// 绑定机构信息
/// </summary>
private void BindHospital()
{
try
{
DataTable ResultDT = DBHelpClass.Get("api/base/T_Base_Hospital/GetList");
PublicClass.SetLookUpList(LUEdit_Hospital, ResultDT, "GUID", "Name", true, "请选择");
LUEdit_Hospital.EditValue = Information.Hospital.ID;//默认当前院区
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "绑定机构信息:\r\n" + ex);
}
}
/// <summary>
/// 绑定科室
/// </summary>
private void LUEdit_Hospital_EditValueChanged(object sender, EventArgs e)
{
try
{
string HospitalGuid = PublicClass.ToString(LUEdit_Hospital.EditValue, "");
string Url = string.Format("/api/admin/T_SYS_Departments/GetListByHospitalGuid?hospitalGuid={0}", HospitalGuid);
DataTable DepartmentsDT = DBHelpClass.Get(Url);
PublicClass.SetLookUpList(LUEdit_Departments, DepartmentsDT, "ID", "DepartmentName", true, "请选择");
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "绑定科室:\r\n" + ex);
}
}
/// <summary>
/// 绑定职位
/// </summary>
private void BindPosition()
{
try
{
DataTable PositionDT = DBHelpClass.Get("/api/admin/T_SYS_Position/GetList");
PublicClass.SetLookUpList(LUEdit_Position, PositionDT, "ID", "PositionName", true, "请选择");
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "绑定职位:\r\n" + ex);
}
}
/// <summary>
/// 绑定已有角色
/// </summary>
private void BindRole()
{
try
{
DataTable RoleDT = DBHelpClass.Get(string.Format("/api/admin/T_SYS_UserRole/GetListByUserID?userID={0}", Cur_UserID));
gridC_Role.DataSource = RoleDT;//显示分页结果
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "绑定已有角色:\r\n" + ex);
}
}
/// <summary>
/// 绑定已有所属院区列表
/// </summary>
private void BindHospitalList()
{
try
{
Cur_UserHospitalDT = DBHelpClass.Get(string.Format("/api/admin/T_SYS_UserHospital/GetListByUserID?userID={0}", Cur_UserID));
grid_Hospital.DataSource = Cur_UserHospitalDT;//显示分页结果
grv_Hospital.BestFitColumns();//列宽自适应
if (Cur_UserHospitalDT != null && Cur_UserHospitalDT.Rows.Count > 0)
{
//默认第一个
LUEdit_Hospital.EditValue = PublicClass.ToString(Cur_UserHospitalDT.Rows[0]["HospitalGUID"], "-1");
}
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "绑定已有角色:\r\n" + ex);
}
}
#endregion
#region 事件
/// <summary>
/// 更改密码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_UpdatePwd_Click(object sender, EventArgs e)
{
if (Flag == 2)
{
//弹出窗体更改密码
Form_UpdatePassword frm = new Form_UpdatePassword(Convert.ToInt64(this.txt_LoginName.Tag.ToString()), 1);
if (frm.ShowDialog() == DialogResult.OK)
{
txt_Password.Text = frm.NewPassword;
}
}
}
/// <summary>
/// 关闭
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Exit_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.No;
Close();
}
/// <summary>
/// 保存
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Save_Click(object sender, EventArgs e)
{
try
{
#region 保存
string Url = string.Empty;
#region 验证
//名称不能为空
if (string.IsNullOrEmpty(txt_LoginName.Text.ToString().Trim()))
{
XtraMessageBox.Show("登录名不能为空,请填写!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
txt_LoginName.Focus();
return;
}
else
{
#region 判断是否存在
//新增
if (Flag == 1)
{
Url = string.Format("api/admin/T_SYS_User/CheckIsExist?loginName={0}&flag=1", txt_LoginName.Text.ToString().Trim());
}
else if (Flag == 2)
{
Url = string.Format("api/admin/T_SYS_User/CheckIsExist?userId={0}&loginName={1}&flag=2", Convert.ToInt64(txt_LoginName.Tag.ToString()), txt_LoginName.Text.ToString().Trim());
}
DataTable CheckDT = DBHelpClass.Get(Url);
if (CheckDT != null && CheckDT.Rows.Count > 0)
{
XtraMessageBox.Show(string.Format("登录名【{0}】已存在!请更换其他登录名!", txt_LoginName.Text.ToString().Trim()), "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
txt_LoginName.Focus();
return;
}
#endregion
}
//姓名不能为空
if (string.IsNullOrEmpty(txt_FullName.Text.ToString().Trim()))
{
XtraMessageBox.Show("姓名不能为空,请填写!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
txt_FullName.Focus();
return;
}
//工号不能为空
if (string.IsNullOrEmpty(txt_WorkNumber.Text.ToString().Trim()))
{
XtraMessageBox.Show("工号不能为空,请填写!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
txt_WorkNumber.Focus();
return;
}
//if (PublicClass.ToInt32(radioGroup_Gender.EditValue, -1) <= 0)
//{
// XtraMessageBox.Show("请选择性别!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// radioGroup_Gender.Focus();
// return;
//}
//所选择的院区编号(GUID)
string HospitalGUID = string.Empty;
if (PublicClass.ToString(LUEdit_Hospital.EditValue, "-1") == "-1")
{
XtraMessageBox.Show("请选择所属院区!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
LUEdit_Hospital.Focus();
return;
}
else
{
HospitalGUID = PublicClass.ToString(LUEdit_Hospital.EditValue, "");
}
if (PublicClass.ToInt32(LUEdit_Departments.EditValue, -1) <= 0)
{
XtraMessageBox.Show("请选择所属科室!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
LUEdit_Departments.Focus();
return;
}
if (PublicClass.ToInt32(LUEdit_Position.EditValue, -1) <= 0)
{
XtraMessageBox.Show("请选择担任最高职位!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
LUEdit_Position.Focus();
return;
}
////出生日期
//if (string.IsNullOrEmpty(time_Birthday.TimeValue))
//{
// XtraMessageBox.Show("出生日期不能为空,请填写!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// time_Birthday.Focus();
// return;
//}
//int Age = 0;
//if (!int.TryParse(txt_Age.Text.ToString(), out Age))
//{
// XtraMessageBox.Show("请输入年龄!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// txt_Age.Focus();
// return;
//}
if (PublicClass.ToInt32(radioGroup_PersonnelType.EditValue, -1) <= 0)
{
XtraMessageBox.Show("请选择人员类型!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
radioGroup_PersonnelType.Focus();
return;
}
//Regex regex = new Regex("^13\\d{9}$");
//if (!string.IsNullOrEmpty(txt_MobilePhone.Text.ToString().Trim()) && !regex.IsMatch(txt_MobilePhone.Text.ToString().Trim()))
//{
// XtraMessageBox.Show("输入的手机号码不合法!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// txt_MobilePhone.Focus();
// return;
//}
//string phone = "^\\(0\\d{2}\\)[- ]?\\d{8}$|^0\\d{2}[- ]?\\d{8}$|^\\(0\\d{3}\\)[- ]?\\d{7}$|^0\\d{3}[- ]?\\d{7}$";
//Regex re = new Regex(phone);
//if (!string.IsNullOrEmpty(txt_OfficePhone.Text.ToString().Trim()) && !re.IsMatch(txt_OfficePhone.Text.ToString().Trim()))
//{
// XtraMessageBox.Show("输入的办公电话不合法!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// txt_OfficePhone.Focus();
// return;
//}
//string idcard = @"^(/d{15}$|^/d{18}$|^/d{17}(/d|X|x))$";
//if (!string.IsNullOrEmpty(txt_IdentityCard.Text.ToString().Trim()))
//{
// Match m = Regex.Match(txt_IdentityCard.Text.ToString().Trim(), idcard);
// if (!m.Success)
// {
// XtraMessageBox.Show("输入的身份证不合法!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// txt_IdentityCard.Focus();
// return;
// }
//}
//string email = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
// Regex _regex = new Regex(email);
//if (!string.IsNullOrEmpty(txt_Email.Text.ToString().Trim())&&!_regex.IsMatch(txt_Email.Text.ToString().Trim()))
//{
// XtraMessageBox.Show("输入的邮箱不合法!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
// txt_IdentityCard.Focus();
// return;
//}
#endregion
List<T_SYS_UserDTO> list = new List<T_SYS_UserDTO>();
T_SYS_UserDTO model = new T_SYS_UserDTO();
if (Flag == 1)
{
Url = "api/admin/T_SYS_User";
model.GUID = Guid.NewGuid().ToString();
model.CreationDate = PublicClass.DateTimeNow();
model.CreatorID = Information.User.ID;
model.Creator = Information.User.FullName;
model.Password = EncryptClass.EncryptDES(txt_Password.Text.ToString().Trim());
model.IsOnline = 1;
}
else
{
Url = "api/admin/T_SYS_User/UpdateInfo";
model.ID = PublicClass.ToInt64(txt_LoginName.Tag, 0);
model.EditTime = PublicClass.DateTimeNow();
model.EditorID = Information.User.ID;
model.Editor = Information.User.FullName;
model.Password = txt_Password.Text.ToString().Trim();
}
model.LoginName = txt_LoginName.Text.ToString().Trim();
model.WorkNumber = txt_WorkNumber.Text.ToString().Trim();
model.FullName = txt_FullName.Text.ToString().Trim();
//model.Nickname = txt_Nickname.Text.ToString().Trim();
////性别
//model.Gender = PublicClass.ToInt32(radioGroup_Gender.EditValue, 0);
//model.Age = Age;
model.MobilePhone = txt_MobilePhone.Text.ToString().Trim();
//model.OfficePhone = txt_OfficePhone.Text.ToString().Trim();
//科室
model.DepartmentsID = PublicClass.ToInt32(LUEdit_Departments.EditValue, 0);
//职位
model.PositionID = PublicClass.ToInt32(LUEdit_Position.EditValue, 0);
//model.IdentityCard = txt_IdentityCard.Text.ToString().Trim();
//model.Address = txt_Address.Text.ToString().Trim();
//model.Email = txt_Email.Text.ToString().Trim();
////出生日期
//model.Birthday = PublicClass.ToDateTime(time_Birthday.TimeValue);
//model.Signature = txt_Signature.Text.ToString().Trim();
//头像图片
model.Portrait = Convert.FromBase64String(Cur_PicData);
//model.Note = txt_Note.Text.ToString().Trim();
model.PersonnelType = PublicClass.ToInt32(radioGroup_PersonnelType.EditValue, 0);
//电子签名图片
model.ElectronicSignature = Convert.FromBase64String(Cur_PicData_ElectronicSignature);
model.DeleteFlag = 0;
model.IsReceiveMessages = ck_IsReceiveMessages.Checked == true ? 0 : 1;
list.Add(model);
//初始化两个工厂
ClientFactory<T_SYS_UserDTO> httpClient = new HttpClientFactory<T_SYS_UserDTO>();
Client<T_SYS_UserDTO> client = httpClient.VisitFactory();
//访问
ListEntity<T_SYS_UserDTO> t = client.Post(Url, list);
if (t.Success)
{
long userID = model.ID;
//新增时重新获取ID
if (Flag == 1)
{
DataTable UserDT = DBHelpClass.Get(string.Format("api/admin/T_SYS_User/GetByGuid?guid={0}", model.GUID));
if (UserDT != null && UserDT.Rows.Count > 0)
{
userID = PublicClass.ToInt64(UserDT.Rows[0]["id"], 0);
}
}
//保存用户所属院区
SaveUserHospital(userID, HospitalGUID);
XtraMessageBox.Show("保存用户信息成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
DialogResult = DialogResult.OK;
Close();
}
else
{
XtraMessageBox.Show("保存失败,请稍后重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
#endregion
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "保存:\r\n" + ex);
}
}
/// <summary>
/// 更换头像
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_PortraitSel_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Image Files(*.JPG;*.PNG;*.jpeg;*.GIF;*.BMP)|*.JPG;*.PNG;*.GIF;*.BMP;*.jpeg|All files(*.*)|*.*";
ofd.RestoreDirectory = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
FileInfo file = new FileInfo(ofd.FileName);
string Cur_PicAddress = ofd.FileName;
Image imge = Image.FromFile(Cur_PicAddress);
Cur_ImageBitmap = new Bitmap(imge, pictureEdit_Portrait.Width, pictureEdit_Portrait.Height);
pictureEdit_Portrait.Image = Cur_ImageBitmap;
if (file.Extension == ".png" || file.Extension == ".PNG")
{
//所选图标转换成二进制 png
Cur_PicData = PublicClass.Png2String(Cur_ImageBitmap);
}
else
{
//所选图标转换成二进制 jpg
Cur_PicData = PublicClass.Jpeg2String(Cur_ImageBitmap);
}
}
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "更换头像:\r\n" + ex);
}
}
/// <summary>
/// 选择电子签名图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Sel_ElectronicSignature_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Image Files(*.JPG;*.PNG;*.jpeg;*.GIF;*.BMP)|*.JPG;*.PNG;*.GIF;*.BMP;*.jpeg|All files(*.*)|*.*";
ofd.RestoreDirectory = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
FileInfo file = new FileInfo(ofd.FileName);
string Cur_PicAddress = ofd.FileName;
Image imge = Image.FromFile(Cur_PicAddress);
Cur_ImageBitmap_ElectronicSignature = new Bitmap(imge, pictureEdit_ElectronicSignature.Width, pictureEdit_ElectronicSignature.Height);
pictureEdit_ElectronicSignature.Image = Cur_ImageBitmap_ElectronicSignature;
if (file.Extension == ".png" || file.Extension == ".PNG")
{
//所选图标转换成二进制 png
Cur_PicData_ElectronicSignature = PublicClass.Png2String(Cur_ImageBitmap_ElectronicSignature);
}
else
{
//所选图标转换成二进制 jpg
Cur_PicData_ElectronicSignature = PublicClass.Jpeg2String(Cur_ImageBitmap_ElectronicSignature);
}
}
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "更换头像:\r\n" + ex);
}
}
#endregion
#region 角色处理
/// <summary>
/// 添加角色
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TSM_InsertRole_Click(object sender, EventArgs e)
{
try
{
if (Cur_UserID > 0)
{
#region 添加角色
Form_RoleSelect frm = new Form_RoleSelect(Cur_UserID);
if (frm.ShowDialog() == DialogResult.OK)
{
if (!string.IsNullOrEmpty(frm.RoleIDs.Trim()))
{
List<T_SYS_UserRoleDTO> list = new List<T_SYS_UserRoleDTO>();
T_SYS_UserRoleDTO model = new T_SYS_UserRoleDTO();
string Url = "api/admin/T_SYS_UserRole";
model.GUID = Guid.NewGuid().ToString();
model.RoleID = Convert.ToInt64(frm.RoleIDs);
model.UserID = Cur_UserID;
model.CreatorID = Information.User.ID;
model.Creator = Information.User.FullName;
model.CreationDate = PublicClass.DateTimeNow();
model.EditorID = Information.User.ID;
model.Editor = Information.User.FullName;
model.EditTime = PublicClass.DateTimeNow();
model.DeleteFlag = 0;
list.Add(model);
//初始化两个工厂
ClientFactory<T_SYS_UserRoleDTO> httpClient = new HttpClientFactory<T_SYS_UserRoleDTO>();
Client<T_SYS_UserRoleDTO> client = httpClient.VisitFactory();
//访问
ListEntity<T_SYS_UserRoleDTO> t = client.Post(Url, list);
//刷新角色绑定
BindRole();
}
else
{
XtraMessageBox.Show("所选的角色无效,请稍后重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
#endregion
}
else
{
if (Flag == 1)
XtraMessageBox.Show("请先保存用户信息后再分配权限!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "添加角色:\r\n" + ex);
}
}
/// <summary>
/// 删除角色
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TSM_DelRole_Click(object sender, EventArgs e)
{
try
{
#region 删除角色
if (grv_Role.DataRowCount > 0)
{
int selectRow = grv_Role.GetSelectedRows()[0];
string GUID = grv_Role.GetRowCellValue(selectRow, "GUID").ToString();
if (!string.IsNullOrEmpty(GUID.Trim()))
{
List<T_SYS_UserRoleDTO> list = new List<T_SYS_UserRoleDTO>();
T_SYS_UserRoleDTO model = new T_SYS_UserRoleDTO();
string Url = "api/admin/T_SYS_UserRole/LogicalDelete";
model.GUID = GUID;
model.DeleteFlag = 1;
list.Add(model);
//初始化两个工厂
ClientFactory<T_SYS_UserRoleDTO> httpClient = new HttpClientFactory<T_SYS_UserRoleDTO>();
Client<T_SYS_UserRoleDTO> client = httpClient.VisitFactory();
//访问
ListEntity<T_SYS_UserRoleDTO> t = client.Post(Url, list);
if (t.Success)
{
XtraMessageBox.Show("删除用户所属角色成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
//刷新角色绑定
BindRole();
}
}
}
#endregion
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "删除角色:\r\n" + ex);
}
}
#endregion
#region 院区处理
/// <summary>
/// 保存用户院区表信息,一个用户可多个院区
/// </summary>
/// <param name="userID">用户编号</param>
/// <param name="hospitalGUID">院区编号</param>
private bool SaveUserHospital(long userID, string hospitalGUID)
{
try
{
string Url = string.Empty;
List<T_SYS_UserHospitalDTO> list = new List<T_SYS_UserHospitalDTO>();
T_SYS_UserHospitalDTO model = new T_SYS_UserHospitalDTO();
#region 保存用户院区表信息,一个用户可多个院区
if (userID > 0 && !string.IsNullOrEmpty(hospitalGUID))
{
//判断是否存在当前院区
if (Cur_UserHospitalDT != null && Cur_UserHospitalDT.Rows.Count > 0)
{//修改
for (int i = 0; i < Cur_UserHospitalDT.Rows.Count; i++)
{
Url = string.Format("api/admin/T_SYS_UserHospital/Update");
model.GUID = Cur_UserHospitalDT.Rows[i]["GUID"].ToString();
model.HospitalGUID = Cur_UserHospitalDT.Rows[i]["HospitalGUID"].ToString();
}
}
else //新增
{
Url = string.Format("api/admin/T_SYS_UserHospital");
model.GUID = Guid.NewGuid().ToString();
model.HospitalGUID = hospitalGUID;
}
model.UserID = userID;
model.CreatorID = Information.User.ID;
model.Creator = Information.User.FullName;
model.CreationDate = PublicClass.DateTimeNow();
model.EditorID = Information.User.ID;
model.Editor = Information.User.FullName;
model.EditTime = PublicClass.DateTimeNow();
model.DeleteFlag = 0;
list.Add(model);
//初始化两个工厂
ClientFactory<T_SYS_UserHospitalDTO> httpClient = new HttpClientFactory<T_SYS_UserHospitalDTO>();
Client<T_SYS_UserHospitalDTO> client = httpClient.VisitFactory();
//访问
ListEntity<T_SYS_UserHospitalDTO> t = client.Post(Url, list);
return t.Success;
}
else
{
return false;
}
#endregion
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "保存用户院区表信息,一个用户可多个院区:\r\n" + ex);
return false;
}
}
/// <summary>
/// 添加所属院区
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TSM_InsertHospital_Click(object sender, EventArgs e)
{
try
{
if (Cur_UserID > 0)
{
#region 添加所属院区
Form_HospitalSelect frm = new Form_HospitalSelect(Cur_UserID);
if (frm.ShowDialog() == DialogResult.OK)
{
if (!string.IsNullOrEmpty(frm.HospitalIDs.Trim()))
{
//存储院区权限
SaveUserHospital(Cur_UserID, frm.HospitalGUIDs);
//刷新所属院区绑定
BindHospitalList();
}
else
{
XtraMessageBox.Show("所选的所属院区无效,请稍后重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
#endregion
}
else
{
if (Flag == 1)
XtraMessageBox.Show("请先保存用户信息后再添加所属院区!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "添加所属院区:\r\n" + ex);
}
}
/// <summary>
/// 删除所属院区
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TSM_DelHospital_Click(object sender, EventArgs e)
{
try
{
#region 删除所属院区
if (grv_Hospital.DataRowCount > 0)
{
if (Cur_UserHospitalDT.Rows.Count > 1)
{
int selectRow = grv_Hospital.GetSelectedRows()[0];
string GUID = grv_Hospital.GetRowCellValue(selectRow, "GUID").ToString();
if (!string.IsNullOrEmpty(GUID.Trim()))
{
List<T_SYS_UserHospitalDTO> list = new List<T_SYS_UserHospitalDTO>();
T_SYS_UserHospitalDTO model = new T_SYS_UserHospitalDTO();
string Url = "api/admin/T_SYS_UserHospital/LogicalDelete";
model.GUID = GUID;
model.DeleteFlag = 1;
list.Add(model);
//初始化两个工厂
ClientFactory<T_SYS_UserHospitalDTO> httpClient = new HttpClientFactory<T_SYS_UserHospitalDTO>();
Client<T_SYS_UserHospitalDTO> client = httpClient.VisitFactory();
//访问
ListEntity<T_SYS_UserHospitalDTO> t = client.Post(Url, list);
if (t.Success)
{
XtraMessageBox.Show("删除用户所属院区权限成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
//刷新所属院区绑定
BindHospitalList();
}
}
}
else
{
XtraMessageBox.Show("删除失败!当前只有一个所属院区,无法再删除!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
#endregion
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "删除所属院区:\r\n" + ex);
}
}
#endregion
}
}