private void IncludeBaseMappings(Type source, Type destination, TypeMap typeMap) { foreach (var inheritedTypeMap in _typeMaps.Where(t => t.TypeHasBeenIncluded(source, destination))) { typeMap.ApplyInheritedMap(inheritedTypeMap); } }
private void IncludeBaseMappings(TypePair types, TypeMap typeMap) { foreach (var inheritedTypeMap in _userDefinedTypeMaps.Select(kv => kv.Value).Where(t => t.TypeHasBeenIncluded(types))) { typeMap.ApplyInheritedMap(inheritedTypeMap); IncludeBaseMappings(inheritedTypeMap.Types, typeMap); } }
private static void ApplyBaseMaps(TypeMapRegistry typeMapRegistry, TypeMap derivedMap, TypeMap currentMap) { foreach (var baseMap in currentMap.IncludedBaseTypes.Select(typeMapRegistry.GetTypeMap).Where(baseMap => baseMap != null)) { baseMap.IncludeDerivedTypes(currentMap.SourceType, currentMap.DestinationType); derivedMap.ApplyInheritedMap(baseMap); ApplyBaseMaps(typeMapRegistry, derivedMap, baseMap); } }