public override Expression GetAccess(Expression parentInstance) { var queriedMemberAccess = NextPart.GetAccess(parentInstance); var hasCheck = GetHasCheck(queriedMemberAccess); return(MapperData.GetValueConversion(hasCheck, MapperData.TargetMember.Type)); }
public override Expression GetAccess(Expression parentInstance) { var memberAccess = SourceMember.GetQualifiedAccess(parentInstance); return(_isRootMemberPart ? NextPart.GetAccess(memberAccess) : memberAccess); }
public override Expression GetAccess(Expression parentInstance) { var enumerableAccess = NextPart.GetAccess(parentInstance); var helper = new EnumerableTypeHelper(enumerableAccess.Type, _sourceMember.Type); _condition = GetCondition(enumerableAccess, helper); var valueAccess = (helper.HasListInterface && MapperData.RuleSet.Settings.AllowIndexAccesses) ? enumerableAccess.GetIndexAccess(GetIndex(enumerableAccess)) : GetOrderedEnumerableAccess(enumerableAccess, helper); if (NextPart.NextPart != null) { valueAccess = NextPart.NextPart.GetAccess(valueAccess); } if (MapperData.TargetMember.IsSimple) { return(MapperData.GetValueConversion(valueAccess, MapperData.TargetMember.Type)); } return(valueAccess); }
public override Expression GetAccess(Expression parentAccess) { var enumerableAccess = NextPart.GetAccess(parentAccess); return(base.GetAccess(enumerableAccess)); }