155 lines
3.8 KiB
C#
155 lines
3.8 KiB
C#
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;
|
|
|
|
public partial class RolesEdit : System.Web.UI.Page
|
|
{
|
|
private enum Views
|
|
{
|
|
MainView = 0,
|
|
InsertView = 1
|
|
}
|
|
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
Session["currentObject"] = null;
|
|
ApplyAuthorizationRules();
|
|
}
|
|
else
|
|
this.ErrorLabel.Text = "";
|
|
}
|
|
|
|
private void ApplyAuthorizationRules()
|
|
{
|
|
this.GridView1.Columns[
|
|
this.GridView1.Columns.Count - 1].Visible =
|
|
ProjectTracker.Library.Admin.Roles.CanEditObject();
|
|
this.AddRoleButton.Visible =
|
|
ProjectTracker.Library.Admin.Roles.CanAddObject();
|
|
}
|
|
|
|
protected void AddRoleButton_Click(object sender, EventArgs e)
|
|
{
|
|
this.DetailsView1.DefaultMode = DetailsViewMode.Insert;
|
|
MultiView1.ActiveViewIndex = (int)Views.InsertView;
|
|
}
|
|
|
|
protected void DetailsView1_ItemInserted(
|
|
object sender, DetailsViewInsertedEventArgs e)
|
|
{
|
|
MultiView1.ActiveViewIndex = (int)Views.MainView;
|
|
this.GridView1.DataBind();
|
|
}
|
|
|
|
protected void DetailsView1_ModeChanged(
|
|
object sender, EventArgs e)
|
|
{
|
|
MultiView1.ActiveViewIndex = (int)Views.MainView;
|
|
}
|
|
|
|
private ProjectTracker.Library.Admin.Roles GetRoles()
|
|
{
|
|
object businessObject = Session["currentObject"];
|
|
if (businessObject == null ||
|
|
!(businessObject is ProjectTracker.Library.Admin.Roles))
|
|
{
|
|
businessObject =
|
|
ProjectTracker.Library.Admin.Roles.GetRoles();
|
|
Session["currentObject"] = businessObject;
|
|
}
|
|
return (ProjectTracker.Library.Admin.Roles)businessObject;
|
|
}
|
|
|
|
#region RolesDataSource
|
|
|
|
protected void RolesDataSource_DeleteObject(
|
|
object sender, Csla.Web.DeleteObjectArgs e)
|
|
{
|
|
try
|
|
{
|
|
ProjectTracker.Library.Admin.Roles obj = GetRoles();
|
|
int id = (int)e.Keys["Id"];
|
|
obj.Remove(id);
|
|
Session["currentObject"] = obj.Save();
|
|
e.RowsAffected = 1;
|
|
}
|
|
catch (Csla.DataPortalException ex)
|
|
{
|
|
this.ErrorLabel.Text = ex.BusinessException.Message;
|
|
e.RowsAffected = 0;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
this.ErrorLabel.Text = ex.Message;
|
|
e.RowsAffected = 0;
|
|
}
|
|
}
|
|
|
|
protected void RolesDataSource_InsertObject(
|
|
object sender, Csla.Web.InsertObjectArgs e)
|
|
{
|
|
try
|
|
{
|
|
ProjectTracker.Library.Admin.Roles obj = GetRoles();
|
|
ProjectTracker.Library.Admin.Role role = obj.AddNew();
|
|
Csla.Data.DataMapper.Map(e.Values, role);
|
|
Session["currentObject"] = obj.Save();
|
|
e.RowsAffected = 1;
|
|
}
|
|
catch (Csla.DataPortalException ex)
|
|
{
|
|
this.ErrorLabel.Text = ex.BusinessException.Message;
|
|
e.RowsAffected = 0;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
this.ErrorLabel.Text = ex.Message;
|
|
e.RowsAffected = 0;
|
|
}
|
|
}
|
|
|
|
protected void RolesDataSource_SelectObject(
|
|
object sender, Csla.Web.SelectObjectArgs e)
|
|
{
|
|
ProjectTracker.Library.Admin.Roles obj = GetRoles();
|
|
e.BusinessObject = obj;
|
|
}
|
|
|
|
protected void RolesDataSource_UpdateObject(
|
|
object sender, Csla.Web.UpdateObjectArgs e)
|
|
{
|
|
ProjectTracker.Library.Admin.Roles obj = GetRoles();
|
|
try
|
|
{
|
|
ProjectTracker.Library.Admin.Role role =
|
|
obj.GetRoleById(int.Parse(e.Keys["Id"].ToString()));
|
|
role.Name = e.Values["Name"].ToString();
|
|
Session["currentObject"] = obj.Save();
|
|
e.RowsAffected = 1;
|
|
}
|
|
catch (Csla.DataPortalException ex)
|
|
{
|
|
this.ErrorLabel.Text = ex.BusinessException.Message;
|
|
e.RowsAffected = 0;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
this.ErrorLabel.Text = ex.Message;
|
|
e.RowsAffected = 0;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|