using System; using System.Configuration; using System.Linq; using System.Windows.Forms; using AutoUpdaterDotNET; using DevExpress.XtraEditors; using Gs.DevApp.Entity; using Gs.DevApp.Properties; using Gs.DevApp.ToolBox; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace Gs.DevApp.DevFrm { public partial class FrmLogin : XtraForm { public FrmLogin() { InitializeComponent(); if (ConfigurationManager.AppSettings["IsAutoUpdater"] == "1") _autoUpdate(); else _getRemember(); Text = lbVersion.Text = ConfigurationManager.AppSettings["ProductName"]; btnLogin.Click += BtnLogin_Click; btnCancel.Click += BtnCancel_Click; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134))); } private void BtnCancel_Click(object sender, EventArgs e) { if (MsgHelper.AskQuestion("确定要退出系统吗?")) Application.Exit(); } private void BtnLogin_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtUser.Text.Trim())) { MsgHelper.Warning("登录账号不能为空!"); txtUser.Focus(); return; } if (string.IsNullOrEmpty(txtPwd.Text.Trim())) { MsgHelper.Warning("密码不能为空!"); txtUser.Focus(); return; } var _obj = new { accountPwd = txtPwd.Text.Trim(), accountNo = txtUser.Text.Trim(), }; try { var strJson = UtilityHelper.HttpPost("", "User/UserLogin", JsonConvert.SerializeObject(_obj)); var _rtn = UtilityHelper.ReturnToDynamic(strJson); JObject _login = _rtn.rtnData; if (_rtn.rtnCode > 0) { Settings.Default.userName = ckRemember.Checked? txtUser.Text.Trim() : ""; Settings.Default.userPwd = ckRemember.Checked ? txtPwd.Text.Trim() : ""; Settings.Default.remember = ckRemember.Checked; Settings.Default.Save(); LoginInfoModel.CurrentUser.LoginUserGuid = _login["loginGuid"].ToString(); LoginInfoModel.CurrentUser.LoginTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm"); DialogResult = DialogResult.OK; } else { MsgHelper.Warning("提示:" + _rtn.rtnMsg); DialogResult = DialogResult.None; } } catch (Exception ex) { DialogResult = DialogResult.Cancel; MsgHelper.Warning("提示:" + ex.Message); } } /// /// 读取记住密码 /// private void _getRemember() { try { if (Settings.Default.remember) { txtUser.Text = Settings.Default.userName; txtPwd.Text = Settings.Default.userPwd; ckRemember.Checked = true; } } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void _autoUpdate() { var _version = ConfigurationManager.AppSettings["Version"]; AutoUpdater.InstalledVersion = new Version(_version); AutoUpdater.Start( ConfigurationManager.AppSettings["AutoUpdaterXml"]); AutoUpdater.CheckForUpdateEvent += AutoUpdater_CheckForUpdateEvent; } private void AutoUpdater_CheckForUpdateEvent(UpdateInfoEventArgs args) { if (args == null || string.IsNullOrEmpty(args.DownloadURL)) { MsgHelper.ShowError("读取自动更新失败,无法登录,请联系管理员!"); Close(); Application.Exit(); return; } if (!args.IsUpdateAvailable) { return; } var _strMsg = string.Format( $@"有新版本 {args.CurrentVersion} 可用,您使用的是 {args.InstalledVersion}版本,这是必需的更新,按“是(Y)”开始更新应用程序。"); if (!MsgHelper.AskQuestion(_strMsg)) { Close(); Application.Exit(); return; } try { if (AutoUpdater.DownloadUpdate(args)) { var config = ConfigurationManager.OpenExeConfiguration( ConfigurationUserLevel.None); if (config != null) { var appSettings = (AppSettingsSection)config.GetSection( "appSettings"); if (appSettings.Settings.AllKeys.Contains("Version")) appSettings.Settings["Version"].Value = args.CurrentVersion; else appSettings.Settings.Add("Version", args.CurrentVersion); config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } Application.Exit(); } else { MsgHelper.ShowError("读取自动更新失败,无法登录,请联系管理员!"); Close(); Application.Exit(); } } catch (Exception exception) { MsgHelper.ShowError(exception.Message + ":" + exception.GetType()); Close(); Application.Exit(); } } } }