using DevExpress.XtraEditors;
|
using HStation.WinFrmUI;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
using Yw;
|
using Yw.WinFrmUI;
|
|
namespace PBS.Desktop
|
{
|
public partial class SystemLoginCtrl : DevExpress.XtraEditors.XtraUserControl, ILogin
|
{
|
public SystemLoginCtrl()
|
{
|
InitializeComponent();
|
this.layoutControl1.SetupLayoutControl();
|
}
|
|
/// <summary>
|
/// 登录开始事件
|
/// </summary>
|
public event Action LoginStartEvent;
|
|
/// <summary>
|
/// 登录取消事件
|
/// </summary>
|
public event Action LoginCancelEvent;
|
|
/// <summary>
|
/// 登录完成事件
|
/// </summary>
|
public event Action<Yw.Dto.UserLoginOutput> LoginEndEvet;
|
|
private bool _isInitialized = false;//初始化
|
private const string _software = "YW_PBS_DESKTOP";//软件编码
|
|
/// <summary>
|
/// 初始化
|
/// </summary>
|
public void Initial()
|
{
|
if (_isInitialized)
|
{
|
return;
|
}
|
_isInitialized = true;
|
|
try
|
{
|
var settings = new UserLoginSettings();
|
this.txtLoginName.EditValue = settings.LoginName;
|
if (settings.ExpireTime != null && settings.ExpireTime.Value > DateTime.Now)
|
{
|
this.txtLoginPwd.EditValue = settings.Password;
|
this.ckRemember.Checked = true;
|
}
|
}
|
catch
|
{
|
}
|
}
|
|
//取消登录
|
private void btnCancel_Click(object sender, EventArgs e)
|
{
|
this.LoginCancelEvent?.Invoke();
|
}
|
|
//登录
|
private void btnLogin_Click(object sender, EventArgs e)
|
{
|
Login();
|
}
|
|
//
|
private void txtLoginName_KeyPress(object sender, KeyPressEventArgs e)
|
{
|
if (e.KeyChar == 13)
|
{
|
this.txtLoginPwd.Focus();
|
}
|
}
|
|
//
|
private void txtLoginPwd_KeyPress(object sender, KeyPressEventArgs e)
|
{
|
if (e.KeyChar == 13)
|
{
|
Login();
|
}
|
}
|
|
//验证
|
private bool Valid()
|
{
|
this.dxErrorProvider1.ClearErrors();
|
var loginName = this.txtLoginName.Text.Trim();
|
if (string.IsNullOrEmpty(loginName))
|
{
|
this.dxErrorProvider1.SetError(this.txtLoginName, "请输入用户名称");
|
return false;
|
}
|
var loginPwd = this.txtLoginPwd.Text.Trim();
|
if (string.IsNullOrEmpty(loginPwd))
|
{
|
this.dxErrorProvider1.SetError(this.txtLoginPwd, "请输入密码");
|
return false;
|
}
|
return true;
|
}
|
|
//登录
|
private async void Login()
|
{
|
if (!Valid())
|
{
|
return;
|
}
|
|
// 用户登录
|
this.LoginStartEvent?.Invoke();
|
var loginName = this.txtLoginName.Text.Trim();
|
var loginPwd = this.txtLoginPwd.Text.Trim();
|
var result = await BLLFactory<Yw.BLL.UserLogin>.Instance.LoginSoftwareStandardBySystemAccount(loginName, loginPwd, _software, null);
|
var settings = new UserLoginSettings();
|
settings.LoginName = loginName;
|
settings.Password = null;
|
settings.ExpireTime = DateTime.Now;
|
if (this.ckRemember.Checked)
|
{
|
settings.Password = loginPwd;
|
settings.ExpireTime = DateTime.Now.AddMonths(1);
|
}
|
settings.Save();
|
this.LoginEndEvet?.Invoke(result);
|
}
|
}
|
}
|