using Gs.DevApp.ToolBox; using Newtonsoft.Json; using System; using System.Windows.Forms; using Gs.DevApp.Entity; using Newtonsoft.Json.Linq; using System.Data; using System.Configuration; using AutoUpdaterDotNET; using System.Linq; namespace Gs.DevApp.DevFrm { public partial class FrmLogin : DevExpress.XtraEditors.XtraForm { public FrmLogin() { InitializeComponent(); if (ConfigurationManager.AppSettings["IsAutoUpdater"] == "1") _autoUpdate(); else getTree(); this.Text = lbVersion.Text = System.Configuration.ConfigurationSettings.AppSettings.Get("ProductName").ToString(); btnLogin.Click += BtnLogin_Click; btnCancel.Click += BtnCancel_Click; _getRemember(); } /// /// 读取组织 /// private void getTree() { PageQueryModel pgq = new PageQueryModel(1, 999999, "factory", "asc", "", "and isStatus=1"); string json = JsonConvert.SerializeObject(pgq); string strReturn = ""; try { strReturn = UtilityHelper.HttpPost("", "Organization/GetListPage", json); ReturnModel rtn = UtilityHelper.ReturnToTablePage(strReturn); DataTable dt = rtn.rtnData.list; comOrg.DataSource = dt; comOrg.DisplayMember = "name"; comOrg.ValueMember = "guid"; comOrg.SelectedIndex = 0; } catch (Exception ex) { ToolBox.MsgHelper.Warning("提示:" + ex.Message); this.Close(); Application.Exit(); } } 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())) { Gs.DevApp.ToolBox.MsgHelper.Warning("登录账号不能为空!"); txtUser.Focus(); return; } if (string.IsNullOrEmpty(txtPwd.Text.Trim())) { Gs.DevApp.ToolBox.MsgHelper.Warning("密码不能为空!"); txtUser.Focus(); return; } if (comOrg.SelectedValue == null || string.IsNullOrEmpty(comOrg.SelectedValue.ToString().Trim())) { Gs.DevApp.ToolBox.MsgHelper.Warning("组织机构不能为空!"); txtUser.Focus(); return; } var _obj = new { accountPwd = txtPwd.Text.Trim(), accountNo = txtUser.Text.Trim(), orgGuid = comOrg.SelectedValue.ToString().Trim() }; try { string strJson = UtilityHelper.HttpPost("", "User/UserLogin", JsonConvert.SerializeObject(_obj)); ReturnModel _rtn = ToolBox.UtilityHelper.ReturnToDynamic(strJson); JObject _login = _rtn.rtnData; if (_rtn.rtnCode > 0) { Properties.Settings.Default.userName = (ckRemember.Checked ? txtUser.Text.Trim() : ""); Properties.Settings.Default.userPwd = (ckRemember.Checked ? txtPwd.Text.Trim() : ""); Properties.Settings.Default.orgGuid = (ckRemember.Checked ? comOrg.SelectedValue.ToString() : ""); Properties.Settings.Default.remember = ckRemember.Checked; Properties.Settings.Default.Save(); LoginInfoModel.CurrentUser.LoginUserGuid = _login["loginGuid"].ToString(); LoginInfoModel.CurrentUser.LoginOrgGuid = _login["loginOrgGuid"].ToString(); LoginInfoModel.CurrentUser.LoginTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm"); LoginInfoModel.CurrentUser.LoginFactory = _login["loginFactory"].ToString(); this.DialogResult = DialogResult.OK; } else { ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg); this.DialogResult = DialogResult.None; } } catch (Exception ex) { this.DialogResult = DialogResult.Cancel; ToolBox.MsgHelper.Warning("提示:" + ex.Message); } } /// /// 读取记住密码 /// private void _getRemember() { if (Properties.Settings.Default.remember) { txtUser.Text = Properties.Settings.Default.userName; txtPwd.Text = Properties.Settings.Default.userPwd; comOrg.SelectedValue = Properties.Settings.Default.orgGuid; ckRemember.Checked = true; } } private void _autoUpdate() { string _version = ConfigurationManager.AppSettings["Version"]; AutoUpdater.InstalledVersion = new Version(_version); AutoUpdater.Start(System.Configuration.ConfigurationSettings.AppSettings.Get("AutoUpdaterXml").ToString()); AutoUpdater.CheckForUpdateEvent += AutoUpdater_CheckForUpdateEvent; } private void AutoUpdater_CheckForUpdateEvent(UpdateInfoEventArgs args) { if (args == null || string.IsNullOrEmpty(args.DownloadURL)) { MsgHelper.ShowError("读取自动更新失败,无法登录,请联系管理员!"); this.Close(); Application.Exit(); return; } if (!args.IsUpdateAvailable) { getTree(); return; } string _strMsg = string.Format($@"有新版本 {args.CurrentVersion} 可用,您使用的是 {args.InstalledVersion}版本,这是必需的更新,按“是(Y)”开始更新应用程序。"); if (!MsgHelper.AskQuestion(_strMsg)) { this.Close(); Application.Exit(); return; } try { if (AutoUpdater.DownloadUpdate(args)) { Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); if (config != null) { AppSettingsSection 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("读取自动更新失败,无法登录,请联系管理员!"); this.Close(); Application.Exit(); return; } } catch (Exception exception) { MsgHelper.ShowError(exception.Message + ":" + exception.GetType().ToString()); this.Close(); Application.Exit(); return; } } } }