using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace SGSGHome.Views.Sys
{
public partial class UserInRole : ChildWindow
{
CoreService.CoreServiceClient client;
public long RoleID { get; set; }
DoubleClickHelper lbUserNotInRoleEvent;
DoubleClickHelper lbUserInRoleEvent;
public UserInRole()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(UserInRole_Loaded);
}
void UserInRole_Loaded(object sender, RoutedEventArgs e)
{
//自定义双击事件
lbUserInRoleEvent = new DoubleClickHelper();
lbUserNotInRoleEvent = new DoubleClickHelper();
lbUserInRoleEvent.OnDoubleClick += new EventHandler<DoubleClickEventArgs>(lbUserInRoleEvent_OnDoubleClick);
lbUserNotInRoleEvent.OnDoubleClick += new EventHandler<DoubleClickEventArgs>(lbUserNotInRoleEvent_OnDoubleClick);
client = new CoreService.CoreServiceClient();
client.GetUserInRoleCompleted += new EventHandler<CoreService.GetUserInRoleCompletedEventArgs>(client_GetUserInRoleCompleted);
client.GetUserNotInRoleCompleted += new EventHandler<CoreService.GetUserNotInRoleCompletedEventArgs>(client_GetUserNotInRoleCompleted);
client.AddUserToRoleCompleted += new EventHandler<CoreService.AddUserToRoleCompletedEventArgs>(client_AddUserToRoleCompleted);
client.DeleteUserFromRoleCompleted += new EventHandler<CoreService.DeleteUserFromRoleCompletedEventArgs>(client_DeleteUserFromRoleCompleted);
client.GetUserInRoleAsync(this.RoleID);
client.GetUserNotInRoleAsync(this.RoleID);
}
void lbUserNotInRoleEvent_OnDoubleClick(object sender, DoubleClickEventArgs e)
{
var clickItem = e.CurrentFrameworkElement as ListBoxItem;
var dataItem = clickItem.Content as CoreService.sp_UserNotInRole_Result;
client.AddUserToRoleAsync(dataItem.SamAccountName, this.RoleID);
}
void lbUserInRoleEvent_OnDoubleClick(object sender, DoubleClickEventArgs e)
{
var clickItem = e.CurrentFrameworkElement as ListBoxItem;
var dataItem = clickItem.Content as CoreService.sp_UserInRole_Result;
client.DeleteUserFromRoleAsync(dataItem.SamAccountName, this.RoleID);
}
void client_DeleteUserFromRoleCompleted(object sender, CoreService.DeleteUserFromRoleCompletedEventArgs e)
{
client.GetUserInRoleAsync(this.RoleID);
client.GetUserNotInRoleAsync(this.RoleID);
}
void client_AddUserToRoleCompleted(object sender, CoreService.AddUserToRoleCompletedEventArgs e)
{
client.GetUserInRoleAsync(this.RoleID);
client.GetUserNotInRoleAsync(this.RoleID);
}
void client_GetUserNotInRoleCompleted(object sender, CoreService.GetUserNotInRoleCompletedEventArgs e)
{
lbUserNotInRole.ItemsSource = e.Result;
lbUserNotInRole.DisplayMemberPath = "DisplayName";
lbUserNotInRole.SelectedValuePath = "SamAccountName";
}
void client_GetUserInRoleCompleted(object sender, CoreService.GetUserInRoleCompletedEventArgs e)
{
lbUserInRole.ItemsSource = e.Result;
lbUserInRole.DisplayMemberPath = "DisplayName";
lbUserInRole.SelectedValuePath = "SamAccountName";
}
private void OKButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = true;
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
}
private void lbUserNotInRole_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
//添加用户到角色
var fe = e.OriginalSource as FrameworkElement;
lbUserNotInRoleEvent.SendMessage(fe.ParentOfType<ListBoxItem>());
}
private void lbUserInRole_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
//从角色移除用户
var fe = e.OriginalSource as FrameworkElement;
lbUserInRoleEvent.SendMessage(fe.ParentOfType<ListBoxItem>());
}
}
}