using HxModel; using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; 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.Navigation; using System.Windows.Shapes; using XHandler.Class; using HxUserManagement.Classes; using HxUserManagement.HxBLL; namespace HxUserManagement.Views { /// /// UserCenter.xaml 的交互逻辑 /// public partial class UserCenter : UserControl { #region CustomEvent public static readonly RoutedEvent editRoutedEvent = EventManager.RegisterRoutedEvent("editEvent", RoutingStrategy.Bubble, typeof(CustomEvent.CustomRoutedEventHandler), typeof(UserCenter)); [Description("editEvent")] public event CustomEvent.CustomRoutedEventHandler editEvent { add { this.AddHandler(editRoutedEvent, value); } remove { this.RemoveHandler(editRoutedEvent, value); } } private void RaiseEditEvent(string l) { CustomRoutedEventArgs arg = new CustomRoutedEventArgs(editRoutedEvent, l); this.RaiseEvent(arg); } public static readonly RoutedEvent resetPswdRoutedEvent = EventManager.RegisterRoutedEvent("resetPswdEvent", RoutingStrategy.Bubble, typeof(CustomEvent.CustomRoutedEventHandler), typeof(UserCenter)); [Description("resetPswdEvent")] public event CustomEvent.CustomRoutedEventHandler resetPswdEvent { add { this.AddHandler(resetPswdRoutedEvent, value); } remove { this.RemoveHandler(resetPswdRoutedEvent, value); } } private void RaiseResetPswdEvent(string l) { CustomRoutedEventArgs arg = new CustomRoutedEventArgs(resetPswdRoutedEvent, l); this.RaiseEvent(arg); } #endregion public List userInfoList; public UserInfoBLL userInfoBLL = new UserInfoBLL(); public List roleList; public List statusList; public UserCenter() { InitializeComponent(); Debug.WriteLine("1 "+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff")); Task.Factory.StartNew(() => { userInfoList = userInfoBLL.GetAllUserInfo(); OnFinished(); }); //userInfoList = userInfoBLL.GetAllUserInfo(); //datagrid.ItemsSource = userInfoList; Debug.WriteLine("2 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff")); roleList = DataModel.GetRoles(); RolesModel role = new RolesModel(); role.Name = Properties.Resources.strPleaseSelect; roleList.Insert(0, role); comboxRole.ItemsSource = roleList; comboxRole.SelectedIndex = 0; statusList = DataModel.GetStatusList(); statusList.Insert(0, Properties.Resources.strPleaseSelect); comboxAccountStatus.ItemsSource = statusList; comboxAccountStatus.SelectedIndex = 0; Debug.WriteLine("3 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff")); } private void OnFinished() { Dispatcher.BeginInvoke(new Action(() => { Debug.WriteLine("4 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff")); datagrid.ItemsSource = userInfoList; Debug.WriteLine("5 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff")); })); } private void btnEdit_Click(object sender, RoutedEventArgs e) { if (EventResponseController.Instance.CanExecute() == false) return; Button btn = (Button)sender; if (btn != null) { string id = (string)btn.Tag; RaiseEditEvent(id); } } private void btnDelete_Click(object sender, RoutedEventArgs e) { if (EventResponseController.Instance.CanExecute() == false) return; Button btn = (Button)sender; if (btn != null) { string id = (string)btn.Tag; UserInfoModel user = datagrid.SelectedItem as UserInfoModel; string msg = string.Format(Properties.Resources.strDeleteUserConfirm, user.UserName); MessageBoxResult ret = MessageBox.Show(msg, "Tips", MessageBoxButton.YesNo); if(ret == MessageBoxResult.Yes) { bool result = userInfoBLL.DelById(id); if (result) MessageBox.Show(Properties.Resources.strDeleteSuccess, "Tips"); else MessageBox.Show(Properties.Resources.strDeleteFailed, "Tips"); Refresh(); } } } private void btnPswdReset_Click(object sender, RoutedEventArgs e) { if (EventResponseController.Instance.CanExecute() == false) return; Button btn = (Button)sender; if (btn != null) { string id = (string)btn.Tag; RaiseResetPswdEvent(id); } } private void ResetPassword_closeEvent(object sender, EventArgs e) { throw new NotImplementedException(); } private void datagrid_LoadingRow(object sender, DataGridRowEventArgs e) { e.Row.Header = e.Row.GetIndex() + 1; } public void RefreshUserList() { userInfoList = userInfoBLL.GetAllUserInfo(); datagrid.ItemsSource = userInfoList; } private void textboxUserName_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { Refresh(); } } private void textboxPhone_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { Refresh(); } } private void comboxRole_SelectionChanged(object sender, SelectionChangedEventArgs e) { Refresh(); } private void comboxAccountStatus_SelectionChanged(object sender, SelectionChangedEventArgs e) { Refresh(); } public void Refresh() { string name = textboxUserName.Text; string phone = textboxPhone.Text; string state = ""; if (comboxAccountStatus.SelectedIndex > 0) state = comboxAccountStatus.SelectedIndex == 1 ? "0" : "1"; string authority = ""; if (comboxRole.SelectedIndex > 0) { RolesModel role = comboxRole.SelectedItem as RolesModel; authority = role.Id; } userInfoList = Search(name, phone, state, authority); datagrid.ItemsSource = userInfoList; } private List Search(string name, string phone, string state, string authority) { return userInfoBLL.Search(name, phone, state, authority); } } }