Example #1
0
        public IEnumerable <IMember> SelectMembers(INode currentNode, IEnumerable <IMember> selectedMembers,
                                                   MemberSelectionContext context)
        {
            IEnumerable <IMember> selectedNonPrivateFields = context.Type
                                                             .GetNonPrivateFields(context.IncludedFields)
                                                             .Select(info => new Field(info, currentNode));

            return(selectedMembers.Union(selectedNonPrivateFields).ToList());
        }
Example #2
0
        public IEnumerable <IMember> SelectMembers(INode currentNode, IEnumerable <IMember> selectedMembers,
                                                   MemberSelectionContext context)
        {
            string currentPath = currentNode.PathAndName;

            // If we're part of a collection comparison, the selected path will not include an index,
            // so we need to remove it from the current node as well.
            if (!ContainsIndexingQualifiers(selectedPath))
            {
                currentPath = RemoveIndexQualifiers(currentPath);
            }

            var members = selectedMembers.ToList();

            AddOrRemoveMembersFrom(members, currentNode, currentPath, context);

            return(members);
        }
Example #3
0
        public IEnumerable <IMember> SelectMembers(INode currentNode, IEnumerable <IMember> selectedMembers,
                                                   MemberSelectionContext context)
        {
            var members = new List <IMember>(selectedMembers);

            foreach (MemberInfo memberInfo in currentNode.Type.GetNonPrivateMembers(MemberVisibility.Public | MemberVisibility.Internal))
            {
                IMember member = MemberFactory.Create(memberInfo, currentNode);
                if (predicate(new MemberToMemberInfoAdapter(member)))
                {
                    if (!members.Any(p => p.IsEquivalentTo(member)))
                    {
                        members.Add(member);
                    }
                }
            }

            return(members);
        }
 public IEnumerable <IMember> SelectMembers(INode currentNode, IEnumerable <IMember> selectedMembers,
                                            MemberSelectionContext context)
 {
     return(selectionRule.SelectMembers(currentNode, selectedMembers, context));
 }
Example #5
0
 public IEnumerable <IMember> SelectMembers(INode currentNode, IEnumerable <IMember> selectedMembers,
                                            MemberSelectionContext context)
 {
     return(selectedMembers.Where(pi => !pi.Name.EndsWith("Id", StringComparison.Ordinal)).ToArray());
 }
Example #6
0
 public IEnumerable <IMember> SelectMembers(INode currentNode, IEnumerable <IMember> selectedMembers,
                                            MemberSelectionContext context)
 {
     return(selectedMembers.Where(p => !predicate(new MemberToMemberInfoAdapter(p))).ToArray());
 }
Example #7
0
 protected abstract void AddOrRemoveMembersFrom(List <IMember> selectedMembers,
                                                INode parent, string parentPath,
                                                MemberSelectionContext context);
 protected override void AddOrRemoveMembersFrom(List <IMember> selectedMembers, INode parent, string parentPath,
                                                MemberSelectionContext context)
 {
     selectedMembers.RemoveAll(member =>
                               memberToExclude.IsSameAs(new MemberPath(member, parentPath)));
 }
 public IEnumerable <IMember> SelectMembers(INode currentNode, IEnumerable <IMember> selectedMembers, MemberSelectionContext context)
 {
     return(selectedMembers.Where(member => member.IsBrowsable).ToList());
 }
 protected override void AddOrRemoveMembersFrom(List <IMember> selectedMembers, INode parent, string parentPath, MemberSelectionContext context)
 {
     foreach (MemberInfo memberInfo in context.Type.GetNonPrivateMembers(MemberVisibility.Public | MemberVisibility.Internal))
     {
         var memberPath = new MemberPath(context.Type, memberInfo.DeclaringType, parentPath.Combine(memberInfo.Name));
         if (memberToInclude.IsSameAs(memberPath) || memberToInclude.IsParentOrChildOf(memberPath))
         {
             selectedMembers.Add(MemberFactory.Create(memberInfo, parent));
         }
     }
 }