CreateAclExpansionTree(List <AclExpansionEntry> aclExpansion) { ArgumentUtility.CheckNotNull("aclExpansion", aclExpansion); var aclExpansionTree = (aclExpansion.OrderBy(entry => entry.User.DisplayName).GroupBy(entry => entry.User).Select( grouping => AclExpansionTreeNode.New(grouping.Key, CountRowsBelow(grouping), RoleGrouping(grouping).ToList()))).ToList(); return(aclExpansionTree); }
private IEnumerable <AclExpansionTreeNode <SecurableClassDefinition, AclExpansionTreeNode <AclExpansionEntry, AclExpansionEntry> > > ClassGrouping(IGrouping <Role, AclExpansionEntry> roleGrouping) { return(roleGrouping.OrderBy(classEntry => _orderbyForSecurableClass(classEntry)).GroupBy( classEntry => classEntry.Class).Select( classGrouping => AclExpansionTreeNode.New(classGrouping.Key, CountRowsBelow(classGrouping), StateGrouping(classGrouping).ToList()))); }
private IEnumerable <AclExpansionTreeNode <Role, AclExpansionTreeNode <SecurableClassDefinition, AclExpansionTreeNode <AclExpansionEntry, AclExpansionEntry> > > > RoleGrouping(IGrouping <User, AclExpansionEntry> grouping) { return(grouping.OrderBy(roleEntry => roleEntry.Role.Group.DisplayName).ThenBy(roleEntry => roleEntry.Role.Position.DisplayName). GroupBy(roleEntry => roleEntry.Role).Select( roleGrouping => AclExpansionTreeNode.New(roleGrouping.Key, CountRowsBelow(roleGrouping), ClassGrouping(roleGrouping).ToList()))); }
private List <AclExpansionTreeNode <AclExpansionEntry, AclExpansionEntry> > StateGrouping(IGrouping <SecurableClassDefinition, AclExpansionEntry> classGrouping) { return(classGrouping.GroupBy( aee => aee, aee => aee, AclExpansionEntryIgnoreStateEqualityComparer). Select(x => AclExpansionTreeNode.New(x.Key, x.Count(), x.ToList())).ToList()); }