private static bool HasCompatibleSourceMember(IMemberMapperData mapperData) { if (!mapperData.SourceMember.IsEnumerable) { return(false); } var sourceElementMember = mapperData.SourceMember.GetElementMember(); var targetElementMember = mapperData.TargetMember.GetElementMember(); if (mapperData.CanConvert(sourceElementMember.Type, targetElementMember.Type)) { return(true); } if (!mapperData.MapperContext.UserConfigurations.HasMappingFactories) { return(false); } var queryContext = new QualifiedMemberContext( mapperData.RuleSet, sourceElementMember.Type, targetElementMember.Type, sourceElementMember, targetElementMember, mapperData, mapperData.MapperContext); return(ConfiguredMappingFactory.HasMappingFactories(queryContext)); }
private static IList <DerivedTypePair> GetTypePairsFor( Type derivedSourceType, Type targetType, IMemberMapperData mapperData) { var pairTestMapperData = new QualifiedMemberContext( mapperData.RuleSet, derivedSourceType, targetType, mapperData.TargetMember.WithType(targetType), mapperData.Parent, mapperData.MapperContext); return(pairTestMapperData.GetDerivedTypePairs()); }
private static IEnumerable <ConfiguredObjectFactory> QuerySimpleTypeValueFactories( this IQualifiedMemberContext context, Type sourceType, Type targetType) { if (!targetType.IsSimple()) { return(Enumerable <ConfiguredObjectFactory> .Empty); } var queryContext = new QualifiedMemberContext( context.RuleSet, sourceType, targetType.GetNonNullableType(), QualifiedMember.All, context.Parent, context.MapperContext); return(context .MapperContext .UserConfigurations .QueryObjectFactories(queryContext)); }