narsil/Tanshu.Accounts.PointOfSale/User Management/AssignUserGroups.cs

120 lines
3.6 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Tanshu.Accounts.Helpers;
using System.Threading;
using Tanshu.Accounts.Repository;
using Tanshu.Accounts.Entities.Auth;
namespace Tanshu.Accounts.PointOfSale
{
public partial class AssignUserGroups : Form
{
public AssignUserGroups()
{
InitializeComponent();
}
private void AssignRoles_Load(object sender, EventArgs e)
{
FillUsers();
}
private void FillUsers()
{
cmbUsers.DisplayMember = "Name";
cmbUsers.ValueMember = "UserID";
cmbUsers.DataSource = UserBI.GetUsers();
}
private void cmbUsers_SelectedIndexChanged(object sender, EventArgs e)
{
GetLists();
}
private void GetLists()
{
IList<Group> groups;
IList<Group> userGroups;
if (cmbUsers.SelectedValue == null)
{
groups = MembershipBI.GetGroups();
userGroups = new List<Group>();
}
else
{
int userid = (int)cmbUsers.SelectedValue;
groups = MembershipBI.GetGroupsNotOfUser(userid);
userGroups = MembershipBI.GetGroupsOfUser(userid);
}
RefreshRoles(groups, userGroups);
}
private void RefreshRoles(IList<Group> groups, IList<Group> userGroups)
{
lstGroups.DisplayMember = "Name";
lstGroups.ValueMember = "GroupID";
lstGroups.DataSource = groups;
lstUserGroups.DisplayMember = "Name";
lstUserGroups.ValueMember = "GroupID";
lstUserGroups.DataSource = userGroups;
btnAddAll.Enabled = btnAddSelected.Enabled = groups.Count > 0;
btnRemoveAll.Enabled = btnRemoveSelected.Enabled = userGroups.Count > 0;
}
private void btnAddSelected_Click(object sender, EventArgs e)
{
if (lstGroups.SelectedItem != null)
{
int userID = (int)cmbUsers.SelectedValue;
int groupID = (int)lstGroups.SelectedValue;
MembershipBI.AddUserToGroup(userID, groupID);
GetLists();
}
}
private void btnRemoveSelected_Click(object sender, EventArgs e)
{
if (lstUserGroups.SelectedItem != null)
{
int userID = (int)cmbUsers.SelectedValue;
int groupID = (int)lstUserGroups.SelectedValue;
MembershipBI.RemoveUserFromGroup(userID, groupID);
GetLists();
}
}
private void btnAddAll_Click(object sender, EventArgs e)
{
int userID = (int)cmbUsers.SelectedValue;
int groupID;
for (int i = 0; i <= lstGroups.Items.Count - 1; i++)
{
groupID = ((Group)lstGroups.Items[i]).GroupID;
MembershipBI.AddUserToGroup(userID, groupID);
}
GetLists();
}
private void btnRemoveAll_Click(object sender, EventArgs e)
{
int userID = (int)cmbUsers.SelectedValue;
int groupID;
for (int i = 0; i <= lstUserGroups.Items.Count - 1; i++)
{
groupID = ((Group)lstUserGroups.Items[i]).GroupID;
MembershipBI.RemoveUserFromGroup(userID, groupID);
}
GetLists();
}
}
}