lg
2024-09-16 34697d73ce31cfe3edc760f6c4d1d3640ce263a1
DevApp/Gs.DevApp/DevFrm/FrmLogin.cs
@@ -5,6 +5,9 @@
using Gs.DevApp.Entity;
using Newtonsoft.Json.Linq;
using System.Data;
using System.Configuration;
using AutoUpdaterDotNET;
using System.Linq;
namespace Gs.DevApp.DevFrm
{
@@ -13,11 +16,11 @@
        public FrmLogin()
        {
            InitializeComponent();
            _autoUpdate();
            this.Text = lbVersion.Text = System.Configuration.ConfigurationSettings.AppSettings.Get("ProductName").ToString();
            btnLogin.Click += BtnLogin_Click;
            btnCancel.Click += BtnCancel_Click;
            getTree();
            getRemember();
            _getRemember();
        }
        /// <summary>
        /// 读取组织
@@ -41,6 +44,7 @@
            {
                ToolBox.MsgHelper.Warning("提示:" + ex.Message);
                this.Close();
                Application.Exit();
            }
        }
        private void BtnCancel_Click(object sender, EventArgs e)
@@ -50,7 +54,6 @@
                Application.Exit();
            }
        }
        private void BtnLogin_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtUser.Text.Trim()))
@@ -110,7 +113,7 @@
        /// <summary>
        /// 读取记住密码
        /// </summary>
        private void getRemember()
        private void _getRemember()
        {
            if (Properties.Settings.Default.remember)
            {
@@ -120,5 +123,70 @@
                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;
            }
        }
    }
}