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