private bool IsContains <T>(IList <T> acl, AccessControlItem item) where T : AccessControlItem { foreach (var t in acl) { if (t.Equals(item)) { return(true); } } return(false); }
private void RefreshACIGrid(AccessControlItem selectedItem) { bool foundSelection = false; try { #region General setup Application.DoEvents(); dgvACI.SuspendLayout(); #endregion #region Datasource/Action handling List <AccessControlItemHelper> dataSourceList = null; var selectedUser = GetSelectedUser(); var selectedCategory = GetSelectedACICategory(); if (selectedUser != null && selectedCategory != null) { dataSourceList = (from i in ACIItems join l in UserACIList.FindAll(ac => ac.UserId == selectedUser.Id) on i.Id equals l.AccessControlListId into il join x in GroupACIList.FindAll(ac => UserGroupList.Find(x => x.GroupId == ac.GroupId && x.UserId == selectedUser.Id) != null) on i.Id equals x.AccessControlListId into ix where i.Category == selectedCategory.Category select new AccessControlItemHelper(i.Id, i.Category, i.Action, il.Any(), ix.Any())).ToList(); } #endregion #region Datagrid filling and generation if (dataSourceList?.Count > 0) { dgvACI.DataSource = new SortableBindingList <AccessControlItemHelper>(dataSourceList); if (dgvACI.SortedColumn == null) { dgvACI.Sort(dgvACI.Columns[1], ListSortDirection.Ascending); } for (int i = 0; i < dgvACI.Rows.Count; i++) { var dataBoundItem = (AccessControlItem)dgvACI.Rows[i].DataBoundItem; if ((selectedItem != null) && (dataBoundItem.Id == selectedItem.Id)) { dgvACI.Rows[i].Selected = true; foundSelection = true; } } } else { dgvACI.DataSource = null; } #endregion } catch (Exception ex) { Trace.WriteError("()", Trace.GetMethodName(), CLASSNAME, ex); DisplayError(Trace.GetMethodName(), TranslationKey.CommonMessage_InternalError, ex); } finally { if (selectedItem == null || !foundSelection) { dgvACI.ClearSelection(); } dgvACI.ResumeLayout(); } }
public PermissionItm(AccessControlItem acItem) : this(acItem.TrusteeId, acItem.AccessRight) { }