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? // } // } //} } }