AutoMapper.ConfigurationValidator.CheckPropertyMaps C# (CSharp) Method

CheckPropertyMaps() private method

private CheckPropertyMaps ( ICollection typeMapsChecked, AutoMapper.ResolutionContext context ) : void
typeMapsChecked ICollection
context AutoMapper.ResolutionContext
return void
        private void CheckPropertyMaps(ICollection<TypeMap> typeMapsChecked, ResolutionContext context)
        {
            foreach (var propertyMap in context.TypeMap.GetPropertyMaps())
            {
                if (propertyMap.Ignored) continue;

                var sourceType = propertyMap.SourceType;

                if (sourceType == null) continue;

                // when we don't know what the source type is, bail
                if (sourceType.IsGenericParameter || sourceType == typeof (object))
                    return;

                var destinationType = propertyMap.DestinationProperty.MemberType;
                var memberTypeMap = _config.ResolveTypeMap(sourceType,
                    destinationType);

                if (typeMapsChecked.Any(typeMap => Equals(typeMap, memberTypeMap)))
                    continue;

                var memberContext = new ResolutionContext(null, null, new TypePair(sourceType, destinationType), context)
                {
                    TypeMap = memberTypeMap
                };

                try
                {
                    DryRunTypeMap(typeMapsChecked, memberContext);
                }
                catch (AutoMapperMappingException ex)
                {
                    ex.PropertyMap = propertyMap;
                    throw;
                }
            }
        }
    }