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
 | 
						|
 | 
						|
}
 |