Commit for development environment setup
This commit is contained in:
@@ -0,0 +1,190 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using ProjectTracker.Library;
|
||||
|
||||
namespace PTWin
|
||||
{
|
||||
public partial class ResourceEdit : WinPart
|
||||
{
|
||||
|
||||
private Resource _resource;
|
||||
|
||||
public Resource Resource
|
||||
{
|
||||
get { return _resource; }
|
||||
}
|
||||
|
||||
public ResourceEdit(Resource resource)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_resource = resource;
|
||||
|
||||
this.CurrentPrincipalChanged += new EventHandler(ResourceEdit_CurrentPrincipalChanged);
|
||||
_resource.PropertyChanged += new PropertyChangedEventHandler(mResource_PropertyChanged);
|
||||
|
||||
this.RoleListBindingSource.DataSource = RoleList.GetList();
|
||||
this.ResourceBindingSource.DataSource = _resource;
|
||||
|
||||
ApplyAuthorizationRules();
|
||||
}
|
||||
|
||||
#region WinPart Code
|
||||
|
||||
protected internal override object GetIdValue()
|
||||
{
|
||||
return _resource;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return _resource.FullName;
|
||||
}
|
||||
|
||||
private void ResourceEdit_CurrentPrincipalChanged(object sender, EventArgs e)
|
||||
{
|
||||
ApplyAuthorizationRules();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private void ApplyAuthorizationRules()
|
||||
{
|
||||
// have the controls enable/disable/etc
|
||||
this.ReadWriteAuthorization1.ResetControlAuthorization();
|
||||
|
||||
bool canEdit = ProjectTracker.Library.Project.CanEditObject();
|
||||
|
||||
// enable/disable appropriate buttons
|
||||
this.OKButton.Enabled = canEdit;
|
||||
this.ApplyButton.Enabled = canEdit;
|
||||
this.Cancel_Button.Enabled = canEdit;
|
||||
|
||||
// enable/disable role column in grid
|
||||
this.AssignmentsDataGridView.Columns[3].ReadOnly = !canEdit;
|
||||
}
|
||||
|
||||
private void SaveResource(bool rebind)
|
||||
{
|
||||
using (StatusBusy busy = new StatusBusy("Saving..."))
|
||||
{
|
||||
// stop the flow of events
|
||||
this.ResourceBindingSource.RaiseListChangedEvents = false;
|
||||
this.AssignmentsBindingSource.RaiseListChangedEvents = false;
|
||||
// do the save
|
||||
this.ResourceBindingSource.EndEdit();
|
||||
this.AssignmentsBindingSource.EndEdit();
|
||||
try
|
||||
{
|
||||
Resource temp = Resource.Clone();
|
||||
_resource = temp.Save();
|
||||
if (rebind)
|
||||
{
|
||||
// rebind the UI
|
||||
this.ResourceBindingSource.DataSource = null;
|
||||
this.AssignmentsBindingSource.DataSource = this.ResourceBindingSource;
|
||||
this.ResourceBindingSource.DataSource = _resource;
|
||||
ApplyAuthorizationRules();
|
||||
}
|
||||
}
|
||||
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
|
||||
{
|
||||
this.ResourceBindingSource.RaiseListChangedEvents = true;
|
||||
this.AssignmentsBindingSource.RaiseListChangedEvents = true;
|
||||
this.ResourceBindingSource.ResetBindings(false);
|
||||
this.AssignmentsBindingSource.ResetBindings(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OKButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
SaveResource(false);
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void ApplyButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
SaveResource(true);
|
||||
}
|
||||
|
||||
private void Cancel_Button_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.ResourceBindingSource.CancelEdit();
|
||||
this.AssignmentsBindingSource.CancelEdit();
|
||||
}
|
||||
|
||||
private void CloseButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.ResourceBindingSource.CancelEdit();
|
||||
this.AssignmentsBindingSource.CancelEdit();
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void AssignButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
ProjectSelect dlg = new ProjectSelect();
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
try
|
||||
{
|
||||
_resource.Assignments.AssignTo(dlg.ProjectId);
|
||||
}
|
||||
catch (InvalidOperationException ex)
|
||||
{
|
||||
MessageBox.Show(ex.ToString(),
|
||||
"Error Assigning", MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Information);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.ToString(),
|
||||
"Error Assigning", MessageBoxButtons.OK,
|
||||
MessageBoxIcon.Exclamation);
|
||||
}
|
||||
}
|
||||
|
||||
private void UnassignButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.AssignmentsDataGridView.SelectedRows.Count > 0)
|
||||
{
|
||||
Guid projectId = (Guid)this.AssignmentsDataGridView.SelectedRows[0].Cells[0].Value;
|
||||
_resource.Assignments.Remove(projectId);
|
||||
}
|
||||
}
|
||||
|
||||
private void mResource_PropertyChanged(object sender, PropertyChangedEventArgs e)
|
||||
{
|
||||
if (e.PropertyName == "IsDirty")
|
||||
{
|
||||
this.ResourceBindingSource.ResetBindings(true);
|
||||
this.AssignmentsBindingSource.ResetBindings(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void AssignmentsDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
if (e.ColumnIndex == 1 && e.RowIndex > -1)
|
||||
{
|
||||
Guid projectId = (Guid)this.AssignmentsDataGridView.Rows[e.RowIndex].Cells[0].Value;
|
||||
MainForm.Instance.ShowEditProject(projectId);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user