using CommonFunc; using CommonFunc.Tools; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Linq; using System.Reflection; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using Xceed.Wpf.Toolkit.Core.Converters; using XGL.Data; using XGL.FormItem; using XGL.Models; namespace XGL { /// /// LoginPage.xaml 的交互逻辑 /// public partial class LoginPage : Window { private BackgroundWorker bw = new BackgroundWorker(); private UserLogin ul; Main main; public static LoginPage loginpage; string UserCarNo = ""; public LoginPage() { InitializeComponent(); CommonFunc.Common.ReadConfig();//读取配置文件 bw.WorkerReportsProgress = true; bw.DoWork += new DoWorkEventHandler(bw_DoWork); bw.ProgressChanged += new ProgressChangedEventHandler(bgWorker_ProgessChanged);//进度改变事件 bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);//进度完成事件 //this.Hide(); //Main mainWindow = new Main(); //mainWindow.Show(); } private void btnlogin_Click(object sender, RoutedEventArgs e) { try { //this.dldh.IsActive = true;//遮罩层可见 this.dldh.Visibility = Visibility.Visible;//遮罩层可见 zzdl.Visibility = Visibility.Visible; ul = new UserLogin { username = username.Text.Trim(), pwd = userpwd.Password.Trim(), IsChecked = rememberpwd.IsChecked }; main = new Main(); bw.RunWorkerAsync(); } catch (Exception ex) { LogHelper.instance.log.Error( "登陆异常:" + ex.Message); } } void bw_DoWork(object sender, DoWorkEventArgs e) { JudgeLogin(); } private int LoginStatus = 0; private int JudgeLogin() { DateTime dt1 = DateTime.Now; try { if (string.IsNullOrEmpty(ul.username)) { LoginStatus = -3; return LoginStatus; } if (string.IsNullOrEmpty(ul.pwd)) { LoginStatus = -2; return LoginStatus; } userDB usdb = new userDB(); bw.ReportProgress(1); bool islogin = usdb.Login(ul.username, ul.pwd); if (islogin) { if (ul.IsChecked == true) { Common.IniWriteValue("登录明细", "loginUser", ul.username); Common.IniWriteValue("登录明细", "loginpwd", ul.pwd); } else { Common.IniWriteValue("登录明细", "loginUser", ""); Common.IniWriteValue("登录明细", "loginpwd", ""); } bw.ReportProgress(3); //LoadAreaTree(); LoginStatus = 200; //MainWindow main = new MainWindow(); //main.Show(); //this.Close(); } else { LoginStatus = -1; //MessageBox.Show("用户名或密码错误", "提示"); } } catch (Exception ex) { LoginStatus = -5; LogHelper.instance.log.Error("登录异常:" + ex.Message); } DateTime dt2 = DateTime.Now; TimeSpan ts1 = dt2.Subtract(dt1); LogHelper.instance.log.Info("登录时间差:" + ts1.Seconds); return LoginStatus; } private void bgWorker_ProgessChanged(object sender, ProgressChangedEventArgs e) { if (e.ProgressPercentage == 1) { zzdl.Content = "校验用户"; } if (e.ProgressPercentage == 2) { zzdl.Content = "正在加载菜单"; } if (e.ProgressPercentage == 3) { zzdl.Content = "校验成功,正在登陆"; } } void bw_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e) { switch (LoginStatus) { case 200: main.Show(); this.Close(); break; case 0: CustomMessageBox.Show("登录失败", CustomMessageBoxIcon.Error); //this.Dispatcher.Invoke( //new Action(() => { zzdl.Content = "登录失败"; zzdl.Foreground = Brushes.Red; } //), //System.Windows.Threading.DispatcherPriority.Render) ; break; case -1: //this.Dispatcher.Invoke( //new Action(() => { zzdl.Content = "账号或密码错误"; zzdl.Foreground = Brushes.Red; } //), //System.Windows.Threading.DispatcherPriority.Render); CustomMessageBox.Show("账号或密码错误", CustomMessageBoxIcon.Error); break; case -2: //zzdl.Content = "请输入密码"; //zzdl.Foreground = Brushes.Red; CustomMessageBox.Show("请输入密码", CustomMessageBoxIcon.Error); break; case -3: //zzdl.Content = "请输入账号"; //zzdl.Foreground = Brushes.Red; CustomMessageBox.Show("请输入账号", CustomMessageBoxIcon.Error); break; case -4: //zzdl.Content = "加载菜单异常,请重试"; //zzdl.Foreground = Brushes.Red; CustomMessageBox.Show("加载菜单异常,请重试", CustomMessageBoxIcon.Error); break; case -5: // this.Dispatcher.Invoke( //new Action(() => zzdl.Content = "登录异常,请重试" //), //System.Windows.Threading.DispatcherPriority.Render); CustomMessageBox.Show("登录异常,请重试", CustomMessageBoxIcon.Error); break; } //dldh.IsActive = false; this.dldh.Visibility = Visibility.Hidden;//遮罩层可见 zzdl.Visibility = Visibility.Collapsed; } private void btnloginout_Click(object sender, RoutedEventArgs e) { Environment.Exit(0); Application.Current.Shutdown(); } private void Window_Loaded(object sender, RoutedEventArgs e) { try { username.Focus(); //dldh.IsActive = false; this.dldh.Visibility = Visibility.Hidden;//遮罩层可见 zzdl.Visibility = Visibility.Collapsed; string name = Common.IniReadValue("登录明细", "loginUser"); username.Text = name; string pwd = Common.IniReadValue("登录明细", "loginpwd"); userpwd.Password = pwd; } catch (Exception ex) { MethodInfo method = (MethodInfo)MethodBase.GetCurrentMethod(); Common.Log.Error(method.DeclaringType.FullName + "-" + method.Name + "\r\n" + ex.Message + "\r\n" + ex.StackTrace); } } private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { } private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { this.DragMove();//窗体可移动 } private void btnCheckUpdate_Click(object sender, RoutedEventArgs e) { } } public class UserLogin { public string username { get; set; } public string pwd { get; set; } public bool? IsChecked { get; set; } } }