@@ -757,6 +757,19 @@ public void Can_map_expression_when_mapped_when_members_parent_is_a_method()
757757 //Assert
758758 Assert . True ( res . Count == 1 ) ;
759759 }
760+
761+ [ Fact ]
762+ public void Can_map_expression_with_condittional_logic_while_deflattening ( )
763+ {
764+ /*
765+ CreateMap<TestEntity, TestDTO>()
766+ .ForMember(dst => dst.NestedClass, opt => opt.MapFrom(src => src.ConditionField == 1 ? src : default));*/
767+ Expression < Func < TestDTO , bool > > expr = x => x . NestedClass . NestedField == 1 ;
768+
769+ var mappedExpression = mapper . MapExpression < Expression < Func < TestEntity , bool > > > ( expr ) ;
770+
771+ Assert . NotNull ( mappedExpression ) ;
772+ }
760773 #endregion Tests
761774
762775 private static void SetupAutoMapper ( )
@@ -1192,6 +1205,23 @@ internal class EventModel
11921205 public DateTime EventDate { get ; set ; }
11931206 }
11941207
1208+ public class TestEntity
1209+ {
1210+ public Guid Id { get ; set ; }
1211+ public int ConditionField { get ; set ; }
1212+ public int ToBeNestedField { get ; set ; }
1213+ }
1214+
1215+ public class TestDTO
1216+ {
1217+ public Guid Id { get ; set ; }
1218+ public TestDTONestedClass NestedClass { get ; set ; }
1219+ }
1220+ public class TestDTONestedClass
1221+ {
1222+ public int ? NestedField { get ; set ; }
1223+ }
1224+
11951225 public class OrganizationProfile : Profile
11961226 {
11971227 public OrganizationProfile ( )
@@ -1297,6 +1327,13 @@ public OrganizationProfile()
12971327
12981328 CreateMap < EmployeeModel , EmployeeEntity > ( ) . ReverseMap ( ) ;
12991329 CreateMap < EventModel , EventEntity > ( ) . ReverseMap ( ) ;
1330+
1331+ CreateMap < TestEntity , TestDTO > ( )
1332+ . ForMember ( dst => dst . Id , opt => opt . MapFrom ( src => src . Id ) )
1333+ . ForMember ( dst => dst . NestedClass , opt => opt . MapFrom ( src => src . ConditionField == 1 ? src : default ) ) ;
1334+
1335+ CreateMap < TestEntity , TestDTONestedClass > ( )
1336+ . ForMember ( dst => dst . NestedField , opt => opt . MapFrom ( src => ( int ? ) src . ToBeNestedField ) ) ;
13001337 }
13011338 }
13021339
0 commit comments