private void FillRoleEditorLayoutTabs() { cmBRoleEditorLayoutTabs.Items.Clear(); cmBRoleEditorLayoutTabs.Items.Add("All"); var tabs = RoleEditorLayoutTab.GetTabs(); foreach (var tab in tabs) { cmBRoleEditorLayoutTabs.Items.Add(tab); } cmBRoleEditorLayoutTabs.SelectedIndex = 0; }
public IEnumerable <T> FilterList <T>(IEnumerable <T> list, Func <T, Privilege> selector) { this.FilterChanged = false; RoleEditorLayoutTab selectedTab = null; this.Dispatcher.Invoke(() => { selectedTab = cmBRoleEditorLayoutTabs.SelectedItem as RoleEditorLayoutTab; }); var funcs = GetFilters(); var result = list; result = result.Where(e => funcs.All(f => f.Item1(selector(e)) == f.Item2)); if (selectedTab != null) { result = result.Where(ent => selector(ent) != null && selector(ent).PrivilegeId.HasValue&& selectedTab.PrivilegesHash.Contains(selector(ent).PrivilegeId.Value)); } return(result); }