Skip to content

Commit

Permalink
make MemberMaps a method, GetMemberMaps
Browse files Browse the repository at this point in the history
  • Loading branch information
lbargaoanu committed May 17, 2024
1 parent 546d007 commit 75d2fa1
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 17 deletions.
2 changes: 1 addition & 1 deletion src/AutoMapper/Configuration/ConfigurationValidator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ private void DryRunTypeMap(IGlobalConfiguration config, HashSet<TypeMap> typeMap
}
private void CheckPropertyMaps(IGlobalConfiguration config, HashSet<TypeMap> typeMapsChecked, TypeMap typeMap)
{
foreach (var memberMap in typeMap.MemberMaps)
foreach (var memberMap in typeMap.GetMemberMaps())
{
if(memberMap.Ignored || (memberMap is PropertyMap && typeMap.ConstructorParameterMatches(memberMap.DestinationName)))
{
Expand Down
4 changes: 2 additions & 2 deletions src/AutoMapper/Execution/TypeMapPlanBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,9 @@ private static void CheckForCycles(IGlobalConfiguration configuration, TypeMap t
return;
IEnumerable<MemberMap> MemberMaps()
{
var memberMaps = typeMap.MemberMaps;
var memberMaps = typeMap.GetMemberMaps();
return typeMap.HasDerivedTypesToInclude ?
memberMaps.Concat(configuration.GetIncludedTypeMaps(typeMap).SelectMany(tm => tm.MemberMaps)) :
memberMaps.Concat(configuration.GetIncludedTypeMaps(typeMap).SelectMany(tm => tm.GetMemberMaps())) :
memberMaps;
}
TypeMap ResolveMemberTypeMap(MemberMap memberMap)
Expand Down
15 changes: 2 additions & 13 deletions src/AutoMapper/TypeMap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -96,18 +96,7 @@ public MemberList ConfiguredMemberList
public bool DisableConstructorValidation { get => (_details?.DisableConstructorValidation).GetValueOrDefault(); set => Details.DisableConstructorValidation = value; }
public IReadOnlyCollection<PropertyMap> PropertyMaps => _propertyMaps.NullCheck();
public IReadOnlyCollection<PathMap> PathMaps => (_details?.PathMaps).NullCheck();
public IEnumerable<MemberMap> MemberMaps
{
get
{
var maps = PropertyMaps.Concat((IReadOnlyCollection<MemberMap>)PathMaps);
if (ConstructorMapping)
{
maps = maps.Concat(ConstructorMap.CtorParams);
}
return maps;
}
}
public MemberMap[] GetMemberMaps() => [..PropertyMaps,..PathMaps,..ConstructorMapping ? ConstructorMap.CtorParams : []];
public bool PassesCtorValidation =>
DisableConstructorValidation
|| CustomConstruction
Expand Down Expand Up @@ -167,7 +156,7 @@ public string[] GetUnmappedPropertyNames()
.Except(ignoredSourceMembers ?? []);
}
return properties.Where(memberName => !Profile.GlobalIgnores.Any(memberName.StartsWith)).ToArray();
IEnumerable<MemberMap> MappedMembers() => MemberMaps.Where(pm => pm.IsMapped);
IEnumerable<MemberMap> MappedMembers() => GetMemberMaps().Where(pm => pm.IsMapped);
}
public PropertyMap FindOrCreatePropertyMapFor(MemberInfo destinationProperty, Type destinationPropertyType)
{
Expand Down
2 changes: 1 addition & 1 deletion src/UnitTests/ValueTypes.cs
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ public void Should_work()
innerSource.Inner = innerSource;
var destinationValue = Mapper.Map<Destination>(source).Value;
destinationValue.Inner.ShouldBe(destinationValue);
FindTypeMapFor<InnerSource, InnerDestination>().MemberMaps.Single(m => m.DestinationName == nameof(InnerDestination.Inner)).Inline.ShouldBeFalse();
FindTypeMapFor<InnerSource, InnerDestination>().GetMemberMaps().Single(m => m.DestinationName == nameof(InnerDestination.Inner)).Inline.ShouldBeFalse();
}
}

Expand Down

0 comments on commit 75d2fa1

Please sign in to comment.