216 lines
5.5 KiB
C#
216 lines
5.5 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;
|
|
|
|
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
|
|
|
|
namespace WinApp
|
|
{
|
|
public partial class frmUser : Form
|
|
{
|
|
public frmUser()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
|
private void BeforeFormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
e.Cancel = (SaveAsNeeded() == DialogResult.Cancel);
|
|
}
|
|
private User _user;
|
|
private GroupInfoList _gil=GroupInfoList.Get();
|
|
private void frmUser_Load(object sender, EventArgs e)
|
|
{
|
|
userInfoListBindingSource.DataSource = UserInfoList.Get();
|
|
groupInfoListBindingSource.DataSource = _gil;
|
|
SetupDetail();
|
|
SetupButtons();
|
|
log.Info("This is a test");
|
|
//frmMembership f = new frmMembership();
|
|
//f.Show();
|
|
//f.TopMost = true;
|
|
}
|
|
private DialogResult SaveAsNeeded()
|
|
{
|
|
if (_user != null && _user.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 (lbUsers.SelectedIndex != -1)
|
|
{
|
|
int uid = (int)lbUsers.SelectedValue;
|
|
if (_user == null || _user.UID != uid)
|
|
{
|
|
if (SaveAsNeeded() != DialogResult.Cancel)
|
|
{
|
|
_user = User.Get(uid);
|
|
userBindingSource.DataSource = _user;
|
|
userMembershipsBindingSource.DataSource = _user.UserMemberships;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
private void lbUser_SelectedValueChanged(object sender, EventArgs e)
|
|
{
|
|
SetupDetail();
|
|
}
|
|
private void SetupButtons()
|
|
{
|
|
if (_user != null)
|
|
{
|
|
btnSave.Enabled = _user.IsSavable;
|
|
btnCancel.Enabled = _user.IsDirty;
|
|
btnNew.Enabled = _user.IsValid;
|
|
btnGroups.Enabled = this.userMembershipsDataGridView.SelectedRows.Count > 0;
|
|
btnNewGA.Enabled = _gil.Count > this.userMembershipsDataGridView.Rows.Count;
|
|
btnRemoveGA.Enabled = this.userMembershipsDataGridView.SelectedRows.Count > 0;
|
|
}
|
|
else
|
|
{
|
|
btnSave.Enabled = false;
|
|
btnCancel.Enabled = false;
|
|
btnNew.Enabled = true;
|
|
btnGroups.Enabled = false;
|
|
btnNewGA.Enabled = false;
|
|
btnRemoveGA.Enabled = false;
|
|
}
|
|
}
|
|
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()
|
|
{
|
|
_user.CancelEdit();
|
|
//if (_user.IsDirty)
|
|
//{
|
|
// foreach (UserMembership m in _user.UserMemberships)
|
|
// if(m.IsDirty)
|
|
// m.CancelEdit();
|
|
//}
|
|
_user.BeginEdit();
|
|
}
|
|
private void Save()
|
|
{
|
|
userBindingSource.RaiseListChangedEvents = false;
|
|
userMembershipsBindingSource.RaiseListChangedEvents = false;
|
|
userBindingSource.EndEdit();
|
|
userMembershipsBindingSource.EndEdit();
|
|
|
|
try
|
|
{
|
|
User temp = _user.Clone();
|
|
_user = temp.Save();
|
|
_user.BeginEdit();
|
|
userBindingSource.DataSource = null;
|
|
userMembershipsBindingSource.DataSource = null;
|
|
int uid = _user.UID;
|
|
userInfoListBindingSource.DataSource = UserInfoList.Get();
|
|
if (lbUsers.SelectedIndex == -1)
|
|
lbUsers.SelectedValue = uid;
|
|
userBindingSource.DataSource = _user;
|
|
userMembershipsBindingSource.DataSource = _user.UserMemberships;
|
|
}
|
|
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
|
|
{
|
|
userBindingSource.RaiseListChangedEvents = true;
|
|
userMembershipsBindingSource.RaiseListChangedEvents = true;
|
|
userBindingSource.ResetBindings(false);
|
|
userMembershipsBindingSource.ResetBindings(false);
|
|
}
|
|
SetupButtons();
|
|
}
|
|
public void New()
|
|
{
|
|
if (SaveAsNeeded() != DialogResult.Cancel)
|
|
{
|
|
_user = User.New();
|
|
userBindingSource.DataSource = _user;
|
|
userMembershipsBindingSource.DataSource = _user.UserMemberships;
|
|
lbUsers.SelectedIndex = -1;
|
|
}
|
|
}
|
|
|
|
private void btnGroups_Click(object sender, EventArgs e)
|
|
{
|
|
frmGroups fg = new frmGroups(GetGID());
|
|
fg.ShowDialog();
|
|
}
|
|
|
|
private void btnNewGA_Click(object sender, EventArgs e)
|
|
{
|
|
using (frmGroupSelect f = new frmGroupSelect())
|
|
{
|
|
f.ShowDialog();
|
|
if (f.DialogResult == DialogResult.OK)
|
|
{
|
|
_user.UserMemberships.Add(Group.Get(f.GID)); // TODO KBR - using
|
|
SetupButtons();
|
|
}
|
|
}
|
|
}
|
|
private int GetGID()
|
|
{
|
|
return int.Parse(userMembershipsDataGridView.SelectedRows[0].Cells[0].Value.ToString());
|
|
}
|
|
private void btnRemoveGA_Click(object sender, EventArgs e)
|
|
{
|
|
if (this.userMembershipsDataGridView.SelectedRows.Count > 0)
|
|
{
|
|
MessageBox.Show("Conversion Error");
|
|
//TODO: KBR _user.UserMemberships.Remove(GetGID());
|
|
}
|
|
}
|
|
|
|
private void userMembershipsDataGridView_SelectionChanged(object sender, EventArgs e)
|
|
{
|
|
SetupButtons();
|
|
}
|
|
|
|
private void btnStack_Click(object sender, EventArgs e)
|
|
{
|
|
_user.BeginEdit();
|
|
}
|
|
|
|
private void btnPop_Click(object sender, EventArgs e)
|
|
{
|
|
_user.CancelEdit();
|
|
}
|
|
}
|
|
} |