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()); }
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); }
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)); }
public IEnumerable <IMember> SelectMembers(INode currentNode, IEnumerable <IMember> selectedMembers, MemberSelectionContext context) { return(selectedMembers.Where(pi => !pi.Name.EndsWith("Id", StringComparison.Ordinal)).ToArray()); }
public IEnumerable <IMember> SelectMembers(INode currentNode, IEnumerable <IMember> selectedMembers, MemberSelectionContext context) { return(selectedMembers.Where(p => !predicate(new MemberToMemberInfoAdapter(p))).ToArray()); }
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)); } } }