using DataEntity.Share;
using HxEnum;
using HxModel;
using HxUserManagement.HxBLL;
using HxUserManagement.Views;
using NPOI.Util;
using System;
using System.Collections.Generic;
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 XHandler.View.User;
using XImagingXhandler.XDAL;
namespace XHandler.View
{
///
/// UserManagerment.xaml 的交互逻辑
///
public partial class UserManagerment : UserControl
{
public event EventHandler menuChanged;
public event EventHandler closeEvent;
private User.UserCenter userCenter = null;
public static UserInfo currentUser = null;
private User.AuthorityCenter authorityCenter = null;
private MenuManagement menuManagement = null;
public UserManagerment(string loginUserID)
{
InitializeComponent();
currentUser = UserDB.GetUserInfByUserId(loginUserID);
}
private void btnClose_Click(object sender, RoutedEventArgs e)
{
if (EventResponseController.Instance.CanExecute() == false)
return;
closeEvent?.Invoke(this, EventArgs.Empty);
}
private void rbUserCenter_Checked(object sender, RoutedEventArgs e)
{
gridContent.Children.Clear();
if (userCenter == null)
{
userCenter = new User.UserCenter();
userCenter.editEvent += UserCenter_editEvent;
userCenter.resetPswdEvent += UserCenter_resetPswdEvent;
gridContent.Children.Add(userCenter);
}
else
gridContent.Children.Add(userCenter);
btnNew.Visibility = Visibility.Visible;
}
private void UserCenter_editEvent(object sender, CustomRoutedEventArgs e)
{
string id = (string)e.param;
User.EditUserInfo editUserInfo = new User.EditUserInfo(id);
editUserInfo.closeEvent += EditUserInfo_closeEvent;
editUserInfo.okEvent += EditUserInfo_okEvent;
rootGrid.Children.Add(editUserInfo);
}
private void UserCenter_resetPswdEvent(object sender, CustomRoutedEventArgs e)
{
string id = (string)e.param;
User.ResetPassword resetPassword = new User.ResetPassword(id);
resetPassword.closeEvent += EditUserInfo_closeEvent;
//editUserInfo.okEvent += EditUserInfo_okEvent;
rootGrid.Children.Add(resetPassword);
}
private void EditUserInfo_okEvent(object sender, EventArgs e)
{
UIElement element = sender as UIElement;
if (rootGrid.Children.Contains(element))
rootGrid.Children.Remove(element);
userCenter.Refresh();
}
private void EditUserInfo_closeEvent(object sender, EventArgs e)
{
UIElement element = sender as UIElement;
if (rootGrid.Children.Contains(element))
rootGrid.Children.Remove(element);
}
private void EditAuthority_closeEvent(object sender, EventArgs e)
{
UIElement element = (UIElement)sender;
if (rootGrid.Children.Contains(element))
rootGrid.Children.Remove(element);
}
private void rbRoleManage_Checked(object sender, RoutedEventArgs e)
{
gridContent.Children.Clear();
if (authorityCenter == null)
{
authorityCenter = new User.AuthorityCenter();
authorityCenter.editEvent += AuthorityCenter_editEvent;
gridContent.Children.Add(authorityCenter);
}
else
gridContent.Children.Add(authorityCenter);
btnNew.Visibility = Visibility.Collapsed;
}
private void AuthorityCenter_editEvent(object sender, CustomRoutedEventArgs e)
{
string id = (string)e.param;
User.EditAuthority editAuthority = new User.EditAuthority(id);
editAuthority.closeEvent += EditAuthority_closeEvent;
rootGrid.Children.Add(editAuthority);
}
private void btnNew_Click(object sender, RoutedEventArgs e)
{
if (EventResponseController.Instance.CanExecute() == false)
return;
User.EditUserInfo editUserInfo = new User.EditUserInfo();
editUserInfo.closeEvent += EditUserInfo_closeEvent;
editUserInfo.okEvent += EditUserInfo_okEvent;
rootGrid.Children.Add(editUserInfo);
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
string userid = UserDB.GetUserInfByUserName(Shared.User.username).id;
if (userid == "20e617cd-4784-11ed-a82a-b445068d4036")
{
rbMenuManage.Visibility = Visibility.Visible;
}
else
{
rbMenuManage.Visibility = Visibility.Collapsed;
}
//所有菜单
List roleMenuAllList = UserDB.GetWholeRoleMenuByUserId(userid);
//权限控制
var MenuUserManage = roleMenuAllList.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.MenuUserManage));
if (MenuUserManage != null)
{
bool isExistUserCenter = true;
var SubMenuUserCenter = MenuUserManage.rolemenuchildren.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.SubMenuUserCenter));
if (SubMenuUserCenter != null)
{
rbUserCenter.Visibility = Visibility.Visible;
rbUserCenter.IsChecked = true;
}
else
{
rbUserCenter.Visibility = Visibility.Collapsed;
rbUserCenter.IsChecked = false;
isExistUserCenter = false;
}
var SubMenuRoleManage = MenuUserManage.rolemenuchildren.FirstOrDefault(x => x.rolemenuname.Equals(MenuName.SubMenuRoleManage));
if (SubMenuRoleManage != null)
{
rbRoleManage.Visibility = Visibility.Visible;
rbRoleManage.IsChecked = true;
}
else
{
rbRoleManage.Visibility = Visibility.Collapsed;
rbRoleManage.IsChecked = false;
}
if(isExistUserCenter)
{
rbUserCenter.IsChecked = true;
}
}
}
private void rbMenuManage_Checked(object sender, RoutedEventArgs e)
{
gridContent.Children.Clear();
if (menuManagement == null)
{
menuManagement = new MenuManagement();
//menuManagement.editEvent += UserCenter_editEvent;
//menuManagement.menuChanged += MenuManagement_menuChanged;
gridContent.Children.Add(menuManagement);
}
else
gridContent.Children.Add(menuManagement);
btnNew.Visibility = Visibility.Collapsed;
}
private void MenuManagement_menuChanged(object sender, EventArgs e)
{
menuChanged?.Invoke(this, EventArgs.Empty);
}
}
}