예제 #1
0
        private MemberPath GetRightMemberPath(MemberPath conditionMember, LeftCellWrapper leftCellWrapper)
        {
            CellQuery rightCellQuery   = leftCellWrapper.OnlyInputCell.GetRightQuery(ViewTarget.QueryView);
            var       projectPositions = rightCellQuery.GetProjectedPositions(conditionMember);

            //Make the case simple. If the member is mapped more than once in the same cell wrapper
            //we are not going try and guess the pattern
            if (projectPositions.Count != 1)
            {
                return(null);
            }
            int       firstProjectedPosition = projectPositions.First();
            CellQuery leftCellQuery          = leftCellWrapper.OnlyInputCell.GetLeftQuery(ViewTarget.QueryView);

            return(((MemberProjectedSlot)leftCellQuery.ProjectedSlotAt(firstProjectedPosition)).MemberPath);
        }