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;
}
}
}
}