211 lines
5.6 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using VEPROMS.CSLA.Library;
namespace WinApp
{
public partial class frmRoles : Form
{
Role _role;
private PermLookup _pl=new PermLookup();
public frmRoles()
{
InitializeComponent();
roleInfoListBindingSource.DataSource = RoleInfoList.Get();
permADLookupBindingSource.DataSource = _pl.PermADLookup;
SetupDetail();
SetupButtons();
}
private DialogResult SaveAsNeeded()
{
if (_role != null && _role.IsSavable)
{
DialogResult dr = MessageBox.Show("Do you want to save changes", "Save Changes", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dr == DialogResult.Yes) Save();
if (dr == DialogResult.No) Cancel();
// TODO: Need a Cancel
return dr;
}
return DialogResult.Yes;
}
private void SetupDetail()
{
if (lbRoles.SelectedValue != null)
{
int rid = (int)lbRoles.SelectedValue;
if (_role == null || _role.RID != rid)
{
if (SaveAsNeeded() != DialogResult.Cancel)
{
_role = Role.Get(rid);
roleBindingSource.DataSource = _role;
roleAssignmentsBindingSource.DataSource = _role.RoleAssignments;
rolePermissionsBindingSource.DataSource = _role.RolePermissions;
}
}
}
}
private void lbRole_SelectedValueChanged(object sender, EventArgs e)
{
SetupDetail();
}
private void SetupButtons()
{
if (_role != null)
{
btnSave.Enabled = _role.IsSavable;
btnCancel.Enabled = _role.IsDirty;
btnNew.Enabled = _role.IsValid;
}
else
{
btnSave.Enabled = false;
btnCancel.Enabled = false;
btnNew.Enabled = true;
}
}
private void CurrentItemChanged(object sender, EventArgs e)
{
SetupButtons();
}
private void btnCancel_Click(object sender, EventArgs e)
{
Cancel();
}
private void btnSave_Click(object sender, EventArgs e)
{
Save();
}
private void btnNew_Click(object sender, EventArgs e)
{
New();
}
private void Cancel()
{
_role.CancelEdit();
_role.BeginEdit();
}
private void Save()
{
roleBindingSource.RaiseListChangedEvents = false;
roleAssignmentsBindingSource.RaiseListChangedEvents = false;
rolePermissionsBindingSource.RaiseListChangedEvents = false;
roleBindingSource.EndEdit();
roleAssignmentsBindingSource.EndEdit();
rolePermissionsBindingSource.EndEdit();
try
{
Role temp = _role.Clone();
_role = temp.Save();
_role.BeginEdit();
roleBindingSource.DataSource = null;
roleAssignmentsBindingSource.DataSource = null;
rolePermissionsBindingSource.DataSource = null;
int rid = _role.RID;
roleInfoListBindingSource.DataSource = RoleInfoList.Get();
if (lbRoles.SelectedIndex == -1)
lbRoles.SelectedValue = rid;
roleBindingSource.DataSource = _role;
roleAssignmentsBindingSource.DataSource = _role.RoleAssignments;
rolePermissionsBindingSource.DataSource = _role.RolePermissions;
}
catch (Csla.DataPortalException ex)
{
MessageBox.Show(ex.BusinessException.ToString(),
"Error saving", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "Error saving",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
finally
{
roleBindingSource.RaiseListChangedEvents = true;
roleAssignmentsBindingSource.RaiseListChangedEvents = true;
rolePermissionsBindingSource.RaiseListChangedEvents = true;
roleBindingSource.ResetBindings(false);
roleAssignmentsBindingSource.ResetBindings(false);
rolePermissionsBindingSource.ResetBindings(false);
}
SetupButtons();
}
public void New()
{
if (SaveAsNeeded() != DialogResult.Cancel)
{
_role = Role.New();
roleBindingSource.DataSource = _role;
roleAssignmentsBindingSource.DataSource = _role.RoleAssignments;
rolePermissionsBindingSource.DataSource = _role.RolePermissions;
}
}
private void BeforeFormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = (SaveAsNeeded() == DialogResult.Cancel);
}
private void btnNewPermission_Click(object sender, EventArgs e)
{
_role.RolePermissions.Add(RolePermission.New());
}
private void frmRoles_Load(object sender, EventArgs e)
{
}
//private void btnNewGA_Click(object sender, EventArgs e)
//{
// using (frmUserSelect f = new frmUserSelect())
// {
// f.ShowDialog();
// if (f.DialogResult == DialogResult.OK)
// {
// _group.GroupMemberships.Add(f.UID);
// SetupButtons();
// }
// }
//}
//private void btnRemoveGA_Click(object sender, EventArgs e)
//{
// if (this.groupMembershipsDataGridView.SelectedRows.Count > 0)
// {
// int uid = int.Parse(
// this.groupMembershipsDataGridView.SelectedRows[0].Cells[0].Value.ToString());
// _group.GroupMemberships.Remove(uid);
// }
//}
//private void btnRemoveAssign_Click(object sender, EventArgs e)
//{
// if (this.groupPermissionsDataGridView.SelectedRows.Count > 0)
// {
// int folderid = int.Parse(
// this.groupMembershipsDataGridView.SelectedRows[1].Cells[0].Value.ToString());
// int rid = int.Parse(
// this.groupMembershipsDataGridView.SelectedRows[2].Cells[0].Value.ToString());
// _group.GroupAssignments.Remove(folderid, rid);
// }
//}
//private void btnNewAssign_Click(object sender, EventArgs e)
//{
// using (frmAssignmentSelect f = new frmAssignmentSelect(_group))
// {
// f.ShowDialog();
// if (f.DialogResult == DialogResult.OK)
// {
// //TODO: Do I need to refresh Assignments?
// }
// }
//}
}
}