137 lines
3.0 KiB
C#
137 lines
3.0 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 frmMembership : Form
|
|
{
|
|
public frmMembership()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
Membership _mem;
|
|
private void frmMembership_Load(object sender, EventArgs e)
|
|
{
|
|
membershipInfoListBindingSource.DataSource = MembershipInfoList.Get();
|
|
SetupDetail();
|
|
SetupButtons();
|
|
}
|
|
private DialogResult SaveAsNeeded()
|
|
{
|
|
if (_mem != null && _mem.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 (lbMembers.SelectedIndex != -1)
|
|
{
|
|
int ugid = (int)lbMembers.SelectedValue;
|
|
if (_mem == null || _mem.UGID != ugid)
|
|
{
|
|
if (SaveAsNeeded() != DialogResult.Cancel)
|
|
{
|
|
_mem = Membership.Get(ugid);
|
|
membershipBindingSource.DataSource = _mem;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
private void lbMembers_SelectedValueChanged(object sender, EventArgs e)
|
|
{
|
|
SetupDetail();
|
|
}
|
|
private void SetupButtons()
|
|
{
|
|
if (_mem != null)
|
|
{
|
|
btnSave.Enabled = _mem.IsSavable;
|
|
btnCancel.Enabled = _mem.IsDirty;
|
|
btnNew.Enabled = _mem.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()
|
|
{
|
|
_mem.CancelEdit();
|
|
_mem.BeginEdit();
|
|
}
|
|
private void Save()
|
|
{
|
|
membershipBindingSource.RaiseListChangedEvents = false;
|
|
membershipBindingSource.EndEdit();
|
|
|
|
try
|
|
{
|
|
Membership temp = _mem.Clone();
|
|
_mem = temp.Save();
|
|
_mem.BeginEdit();
|
|
membershipBindingSource.DataSource = null;
|
|
int ugid = _mem.UID;
|
|
if (lbMembers.SelectedIndex == -1)
|
|
lbMembers.SelectedValue = ugid;
|
|
membershipBindingSource.DataSource = _mem;
|
|
}
|
|
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
|
|
{
|
|
membershipBindingSource.RaiseListChangedEvents = true;
|
|
membershipBindingSource.ResetBindings(false);
|
|
}
|
|
SetupButtons();
|
|
}
|
|
public void New()
|
|
{
|
|
if (SaveAsNeeded() != DialogResult.Cancel)
|
|
{
|
|
_mem = Membership.New();
|
|
membershipBindingSource.DataSource = _mem;
|
|
lbMembers.SelectedIndex = -1;
|
|
}
|
|
}
|
|
|
|
}
|
|
} |