Commit for development environment setup
This commit is contained in:
@@ -0,0 +1,246 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using ProjectTracker.Library;
|
||||
|
||||
public partial class ResourceEdit : System.Web.UI.Page
|
||||
{
|
||||
|
||||
private enum Views
|
||||
{
|
||||
MainView = 0,
|
||||
AssignView = 1
|
||||
}
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
Session["currentObject"] = null;
|
||||
ApplyAuthorizationRules();
|
||||
}
|
||||
else
|
||||
this.ErrorLabel.Text = "";
|
||||
}
|
||||
|
||||
private void ApplyAuthorizationRules()
|
||||
{
|
||||
Resource obj = GetResource();
|
||||
// Resource display
|
||||
if (Resource.CanEditObject())
|
||||
{
|
||||
if (obj.IsNew)
|
||||
this.DetailsView1.DefaultMode = DetailsViewMode.Insert;
|
||||
else
|
||||
this.DetailsView1.DefaultMode = DetailsViewMode.Edit;
|
||||
this.AssignProjectButton.Visible = !obj.IsNew;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.DetailsView1.DefaultMode = DetailsViewMode.ReadOnly;
|
||||
this.AssignProjectButton.Visible = false;
|
||||
}
|
||||
this.DetailsView1.Rows[this.DetailsView1.Rows.Count - 1].Visible = Resource.CanEditObject();
|
||||
|
||||
// resources display
|
||||
this.GridView1.Columns[this.GridView1.Columns.Count - 1].Visible = Resource.CanEditObject();
|
||||
}
|
||||
|
||||
#region DetailsView
|
||||
|
||||
protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
|
||||
{
|
||||
Resource resource = GetResource();
|
||||
if (!resource.IsNew)
|
||||
Response.Redirect("ResourceEdit.aspx?id=" + resource.Id.ToString());
|
||||
}
|
||||
|
||||
protected void DetailsView1_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
|
||||
{
|
||||
ApplyAuthorizationRules();
|
||||
}
|
||||
|
||||
protected void DetailsView1_ItemDeleted(object sender, DetailsViewDeletedEventArgs e)
|
||||
{
|
||||
Response.Redirect("ResourceList.aspx");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Project Grid
|
||||
|
||||
protected void AssignProjectButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.MultiView1.ActiveViewIndex = (int)Views.AssignView;
|
||||
}
|
||||
|
||||
protected void GridView2_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
Resource obj = GetResource();
|
||||
try
|
||||
{
|
||||
obj.Assignments.AssignTo(new Guid(this.GridView2.SelectedDataKey.Value.ToString()));
|
||||
if (SaveResource(obj) > 0)
|
||||
{
|
||||
this.GridView1.DataBind();
|
||||
this.MultiView1.ActiveViewIndex = (int)Views.MainView;
|
||||
}
|
||||
}
|
||||
catch (InvalidOperationException ex)
|
||||
{
|
||||
ErrorLabel.Text = ex.Message;
|
||||
}
|
||||
}
|
||||
|
||||
protected void CancelAssignButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.MultiView1.ActiveViewIndex = (int)Views.MainView;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region RoleListDataSource
|
||||
|
||||
protected void RoleListDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e)
|
||||
{
|
||||
e.BusinessObject = RoleList.GetList();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ResourceDataSource
|
||||
|
||||
protected void ResourceDataSource_DeleteObject(object sender, Csla.Web.DeleteObjectArgs e)
|
||||
{
|
||||
Resource.DeleteResource(int.Parse(e.Keys["Id"].ToString()));
|
||||
Session.Remove("currentObject");
|
||||
e.RowsAffected = 1;
|
||||
}
|
||||
|
||||
protected void ResourceDataSource_InsertObject(object sender, Csla.Web.InsertObjectArgs e)
|
||||
{
|
||||
Resource obj = Resource.NewResource();
|
||||
Csla.Data.DataMapper.Map(e.Values, obj, "Id");
|
||||
e.RowsAffected = SaveResource(obj);
|
||||
}
|
||||
|
||||
protected void ResourceDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e)
|
||||
{
|
||||
e.BusinessObject = GetResource();
|
||||
}
|
||||
|
||||
protected void ResourceDataSource_UpdateObject(object sender, Csla.Web.UpdateObjectArgs e)
|
||||
{
|
||||
Resource obj = GetResource();
|
||||
Csla.Data.DataMapper.Map(e.Values, obj);
|
||||
e.RowsAffected = SaveResource(obj);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region AssignmentsDataSource
|
||||
|
||||
protected void AssignmentsDataSource_DeleteObject(object sender, Csla.Web.DeleteObjectArgs e)
|
||||
{
|
||||
Resource obj = GetResource();
|
||||
Guid rid = new Guid(e.Keys["ProjectId"].ToString());
|
||||
obj.Assignments.Remove(rid);
|
||||
e.RowsAffected = SaveResource(obj);
|
||||
}
|
||||
|
||||
protected void AssignmentsDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e)
|
||||
{
|
||||
Resource obj = GetResource();
|
||||
e.BusinessObject = obj.Assignments;
|
||||
}
|
||||
|
||||
protected void AssignmentsDataSource_UpdateObject(object sender, Csla.Web.UpdateObjectArgs e)
|
||||
{
|
||||
Resource obj = GetResource();
|
||||
ResourceAssignment res;
|
||||
Guid rid = new Guid(e.Keys["ProjectId"].ToString());
|
||||
res = obj.Assignments[rid];
|
||||
Csla.Data.DataMapper.Map(e.Values, res);
|
||||
e.RowsAffected = SaveResource(obj);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ProjectListDataSource
|
||||
|
||||
protected void ProjectListDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e)
|
||||
{
|
||||
e.BusinessObject = ProjectTracker.Library.ProjectList.GetProjectList();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Resource GetResource()
|
||||
{
|
||||
object businessObject = Session["currentObject"];
|
||||
if (businessObject == null ||
|
||||
!(businessObject is Resource))
|
||||
{
|
||||
try
|
||||
{
|
||||
string idString = Request.QueryString["id"];
|
||||
if (!string.IsNullOrEmpty(idString))
|
||||
{
|
||||
int id = Int32.Parse(idString);
|
||||
businessObject = Resource.GetResource(id);
|
||||
}
|
||||
else
|
||||
businessObject = Resource.NewResource();
|
||||
Session["currentObject"] = businessObject;
|
||||
}
|
||||
catch (System.Security.SecurityException)
|
||||
{
|
||||
Response.Redirect("ResourceList.aspx");
|
||||
}
|
||||
}
|
||||
return (Resource)businessObject;
|
||||
}
|
||||
|
||||
private int SaveResource(Resource resource)
|
||||
{
|
||||
int rowsAffected;
|
||||
try
|
||||
{
|
||||
Session["currentObject"] = resource.Save();
|
||||
rowsAffected = 1;
|
||||
}
|
||||
catch (Csla.Validation.ValidationException ex)
|
||||
{
|
||||
System.Text.StringBuilder message = new System.Text.StringBuilder();
|
||||
message.AppendFormat("{0}<br/>", ex.Message);
|
||||
if (resource.BrokenRulesCollection.Count == 1)
|
||||
message.AppendFormat("* {0}: {1}",
|
||||
resource.BrokenRulesCollection[0].Property,
|
||||
resource.BrokenRulesCollection[0].Description);
|
||||
else
|
||||
foreach (Csla.Validation.BrokenRule rule in resource.BrokenRulesCollection)
|
||||
message.AppendFormat("* {0}: {1}<br/>", rule.Property, rule.Description);
|
||||
this.ErrorLabel.Text = message.ToString();
|
||||
rowsAffected = 0;
|
||||
}
|
||||
catch (Csla.DataPortalException ex)
|
||||
{
|
||||
this.ErrorLabel.Text = ex.BusinessException.Message;
|
||||
rowsAffected = 0;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.ErrorLabel.Text = ex.Message;
|
||||
rowsAffected = 0;
|
||||
}
|
||||
return rowsAffected;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user