DeviceManager/DeviceRepairAndOptimization/frmLogin.cs
2024-06-11 01:33:11 +08:00

266 lines
8.7 KiB
C#

using AutoUpdaterDotNET;
using DevExpress.XtraEditors;
using DeviceRepair.Models;
using DeviceRepairAndOptimization.Common;
using System;
using System.Drawing;
using System.IO;
using System.Runtime.InteropServices;
using System.Threading;
using System.Windows.Forms;
namespace DeviceRepairAndOptimization
{
public partial class frmLogin : XtraForm
{
private string m_UserCode
{
get
{
return bTxtUserCode.Text.Trim();
}
}
private string m_UserPwd
{
get
{
return bTxtPassword.Text.Trim();
}
}
public frmLogin()
{
InitializeComponent();
Load += FrmLogin_Load;
}
private void FrmLogin_Load(object sender, EventArgs e)
{
AutoUpdate();
lblVersion.Text = $"Ver {GetAppVersion()}";
}
#region
private const int WM_SysCommand = 0x0112;
private const int OneMsgNum = 0xf017;
[DllImport("user32")]
private static extern bool ReleaseCapture();
[DllImport("user32")]
private static extern bool PostMessage(int hWnd, int Mwg, int wParam, int lParam);
private void pnl_Top_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
PostMessage((int)this.Handle, WM_SysCommand, OneMsgNum, 0);
}
}
#endregion
/// <summary>
/// 用户登录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void bBtnLogin_Click(object sender, EventArgs e)
{
splashScreenManager1.ShowWaitForm();
try
{
if (string.IsNullOrEmpty(m_UserCode))
{
throw new Exception("您输入的账户错误,请重试。");
}
if (string.IsNullOrEmpty(m_UserPwd))
{
throw new Exception("您输入的密码错误,请重试。");
}
var responseData = Biz.UserManager.Instance.GetDataByCodeAndPwd(new UserInfoModel
{
LoginCode = m_UserCode,
PassWord = DeviceRepair.Utils.Security.EncryptionHelper.EncryptByMD5(m_UserPwd)
});
if (responseData.Code != 1)
throw new Exception(responseData.Message);
UserInfoModel us = responseData.ToDeserializeObject<UserInfoModel>();
if (us != null)
{
if (!us.Status)
throw new Exception($"用户被锁定,无法登录!");
if (!string.IsNullOrEmpty(responseData.Token))
{
splashScreenManager1.TryCloseWait();
GlobalInfo.CurrentUser = us;
GlobalInfo.token = responseData.Token;
this.DialogResult = DialogResult.OK;
this.Close();
return;
}
}
//EnableOrDisableControl(true);
splashScreenManager1.TryCloseWait();
XtraMessageBoxHelper.Error(responseData.Message);
}
catch (Exception ex)
{
//EnableOrDisableControl(true);
splashScreenManager1.TryCloseWait();
XtraMessageBoxHelper.Error(ex.Message);
}
}
private void picConfig_Click(object sender, EventArgs e)
{
//using (frmClientConfig mFrm = new Sys.frmClientConfig())
//{
// mFrm.ShowDialog();
//}
//ueEnv.RefreshEditValue();
}
private void bTxtPassword_Enter(object sender, EventArgs e)
{
}
private void bTxtPassword_Leave(object sender, EventArgs e)
{
bTxtPassword.Properties.UseSystemPasswordChar = true;
bTxtPassword.Properties.Buttons[1].ImageOptions.Image = Properties.Resources.icohide;
bTxtPassword.Properties.Buttons[1].Caption = "密码隐藏";
bTxtPassword.Properties.Buttons[1].ToolTip = "密码隐藏";
}
/// <summary>
/// 密码校验
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void bTxtUserCode_TextChanged(object sender, EventArgs e)
{
if (((ButtonEdit)sender).Name != "bTxtPassword")
{
bTxtPassword.Text = string.Empty;
this.dxValidationProvider1.Validate((ButtonEdit)sender);
}
else
{
if (!string.IsNullOrEmpty(bTxtPassword.Text.Trim()))
{
dxValidationProvider1.RemoveControlError((ButtonEdit)sender);
}
}
}
/// <summary>
/// 回车登录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void bTxtPassword_Properties_KeyPress(object sender, KeyPressEventArgs e)
{
try
{
if (!string.IsNullOrEmpty(m_UserCode) && !string.IsNullOrEmpty(m_UserPwd))
{
if (e.KeyChar == (char)Keys.Enter)
{
bBtnLogin.PerformClick();
}
}
}
catch (Exception ex)
{
XtraMessageBoxHelper.Error(ex.Message);
}
}
/// <summary>
/// 密码可视/隐藏
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void bTxtPassword_Properties_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
{
bool isShow = e.Button.Caption != "密码可见";
if (isShow)
{
bTxtPassword.Properties.UseSystemPasswordChar = false;
bTxtPassword.Properties.Buttons[1].ImageOptions.Image = Properties.Resources.icoshow;
bTxtPassword.Properties.Buttons[1].Caption = "密码可见";
bTxtPassword.Properties.Buttons[1].ToolTip = "密码可见";
}
else
{
bTxtPassword.Properties.UseSystemPasswordChar = true;
bTxtPassword.Properties.Buttons[1].ImageOptions.Image = Properties.Resources.icohide;
bTxtPassword.Properties.Buttons[1].Caption = "密码隐藏";
bTxtPassword.Properties.Buttons[1].ToolTip = "密码隐藏";
}
}
/// <summary>
/// 程序退出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void bBtnExit_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}
public void AutoUpdate()
{
AutoUpdater.AppTitle = "Device Repair And Optimization";
var vUpdateDir = Path.Combine(Application.StartupPath, "Update");
if (!Directory.Exists(vUpdateDir))
{
Directory.CreateDirectory(vUpdateDir);
}
// 指定下载文件的存储目录
AutoUpdater.DownloadPath = vUpdateDir;
AutoUpdater.UpdateFormSize = new Size(800, 600);
AutoUpdater.ApplicationExitEvent += AutoUpdater_ApplicationExitEvent;
AutoUpdater.Synchronous = true;
AutoUpdater.ShowSkipButton = false;
AutoUpdater.ShowRemindLaterButton = false;
AutoUpdater.Start($"http://{DeviceRepair.Utils.Config.Configurations.Properties.ServiceIP}/{DeviceRepair.Utils.Config.Configurations.Properties.ServiceName}/Update/DOAutoUpdater.xml");
}
private void AutoUpdater_ApplicationExitEvent()
{
Text = @"Closing application...";
Thread.Sleep(3000);
Application.Exit();
}
/// <summary>
/// 获取当前程序版本
/// </summary>
/// <returns></returns>
private static string GetAppVersion()
{
try
{
char vSplitChar = '.';
string[] vVersion = Application.ProductVersion.Split(vSplitChar);
return $"{vVersion[0]}{vSplitChar}{vVersion[1]}";
}
catch
{
return Application.ProductVersion;
}
}
}
}