public void SetData(Role role) { foreach (HtmlTableRow row in m_Table.Rows) { for (int i = 0; i < row.Cells.Count; i++) { if (row.Cells[i].Controls.Count > 0) { if (row.Cells[i].Controls[0] is ASPxCheckBox) { ASPxCheckBox chk = (ASPxCheckBox)row.Cells[i].Controls[0]; char action = Char.Parse(chk.ID.Substring(4, 1)); int id = int.Parse(chk.ID.Remove(0, 6)); SelectionPermission sp = new SelectionPermission(id, "", action); if (chk.Checked) { if (!selectedList.Contains(sp)) { RolePermission rp = new RolePermission { RoleID = role.RoleID, PermissionID = sp.PermissionID }; role.RolePermissions.Add(rp); } } else { if (selectedList.Contains(sp)) { var result = from rps in GetDatabaseContext().RolePermissions where rps.RoleID == role.RoleID && rps.PermissionID == sp.PermissionID select rps; RolePermission rp = result.SingleOrDefault(); if (rp != null) { GetDatabaseContext().RolePermissions.DeleteOnSubmit(rp); } } } } } } } }
protected void Page_Load(object sender, EventArgs e) { m_Table = new HtmlTable(); fullList = GetData(); m_Table.Border = 1; HtmlTableRow row = GetHeader(); m_Table.Rows.Add(row); String currentAction = null; foreach (UserManagement.Data.Permission p in fullList) { HtmlTableCell cell; if (currentAction == null || currentAction != p.Name) { currentAction = p.Name; row = new HtmlTableRow(); for (int i = 0; i < 5; i++) row.Cells.Add(new HtmlTableCell()); cell = new HtmlTableCell(); ASPxLabel label = new ASPxLabel { Text = p.Name }; cell.Controls.Add(label); row.Cells.RemoveAt(0); row.Cells.Insert(0, cell); } cell = new HtmlTableCell(); ASPxCheckBox chk = new ASPxCheckBox(); chk.ClientSideEvents.CheckedChanged = "function(s, e) {document.getElementById('" + ((DetailComponent)Parent).linkSubmit.ClientID + "').className = 'btnSubmitChanged'}"; chk.ID = "chk_" + p.Action + "_" + p.PermissionID.ToString(); cell.Controls.Add(chk); SelectionPermission sp = new SelectionPermission(p.PermissionID, p.Name, p.Action); if (selectedList.Contains(sp)) chk.Checked = true; if (p.Action.Equals('R')) { row.Cells.RemoveAt(1); row.Cells.Insert(1, cell); } else if (p.Action.Equals('C')) { row.Cells.RemoveAt(2); row.Cells.Insert(2, cell); } else if (p.Action.Equals('U')) { row.Cells.RemoveAt(3); row.Cells.Insert(3, cell); } else if (p.Action.Equals('D')) { row.Cells.RemoveAt(4); row.Cells.Insert(4, cell); } m_Table.Rows.Add(row); } Controls.Add(m_Table); }
public void LinkData(Role role) { selectedList.Clear(); m_RoleID = role.RoleID; m_DbContext = GetDatabaseContext(); var res = from rp in m_DbContext.RolePermissions where rp.RoleID == m_RoleID select rp; foreach (RolePermission item in res) { SelectionPermission sp = new SelectionPermission(item.PermissionID, item.Permission.Name, item.Permission.Action); if (!selectedList.Contains(sp)) selectedList.Add(sp); } }