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();
 | 
						|
		}
 | 
						|
	}
 | 
						|
} |