12

Using version 4.

How do I check for null when doing a map? I tried the .Value, but that's not there on a Null:

        Mapper.CreateMap<Agenda, AgendaViewModel>()
            .ForMember(x => x.DateApproved, 
               y => y.MapFrom(s =>  DateTime.SpecifyKind(s.DateApproved.Value, DateTimeKind.Utc)));
d219
  • 2,707
  • 5
  • 31
  • 36
Ian Vink
  • 66,960
  • 104
  • 341
  • 555

2 Answers2

12

Alternatively, you can just check the HasValue property prior to mapping:

Mapper.CreateMap<Agenda, AgendaViewModel>()
     .ForMember(x => x.DateApproved,
                y => y.MapFrom(s => s.DateApproved.HasValue ?
                                    DateTime.SpecifyKind(s.DateApproved.Value, DateTimeKind.Utc) :
                                    DateTime.UtcNow));
Will Ray
  • 10,621
  • 3
  • 46
  • 61
2

I think this would work:

Mapper.CreateMap<Agenda, AgendaViewModel>()
        .ForMember(x => x.DateApproved, 
                    y => y.ResolveUsing(z => z.DateApproved.HasValue 
                           ? DateTime.UtcNow :
                           Mapper.Map<Agenda, AgendaViewModel>
                          (DateTime.SpecifyKind(z.DateApproved.Value, DateTimeKind.Utc)));
Zein Makki
  • 29,485
  • 6
  • 52
  • 63