예제 #1
0
        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);
        }
예제 #2
0
 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())));
 }
예제 #3
0
 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())));
 }
예제 #4
0
 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());
 }