I have this class:
public class EntityClass
{
public bool IsExempt { get; set; }
public bool IsOverdue { get; set; }
public SourceEnum Status { get; set; }
}
And these two enums:
public enum SourceEnum
{
NotSet = 0,
InProgress,
Submitted,
AssessmentComplete,
Complete
}
[Flags]
public enum DestinationEnum
{
None = 0,
[Description("Exempt")]
Exempt = 1,
[Description("Unset")]
Unset = 2,
[Description("Overdue")]
Overdue = 3,
[Description("In Progress")]
InProgress = 4,
[Description("Submitted")]
Submitted = 5,
[Description("Conf. Pending")]
ConfirmationPending = 6,
[Description("Complete")]
Completed = 7
}
I want to map from EntityClass to DestinationEnum, I tried it this way:
var config = new MapperConfiguration(cfg => cfg.CreateMap<EntityClass, DestinationEnum>()
.ForMember(dest => dest, opt => opt.MapFrom(source => source.IsExempt ? DestinationEnum.Exempt : DestinationEnum.None))
.ForMember(dest => dest, opt => opt.MapFrom(source => source.IsOverdue ? DestinationEnum.Overdue : DestinationEnum.None))
.ForMember(dest => dest, opt => opt.MapFrom(source => source.Status == SourceEnum.InProgress ? DestinationEnum.InProgress : DestinationEnum.None))
.ForMember(dest => dest, opt => opt.MapFrom(source => source.Status == SourceEnum.Complete ? DestinationEnum.Completed : DestinationEnum.None))
.ForMember(dest => dest, opt => opt.MapFrom(source => source.Status == SourceEnum.AssessmentComplete ? DestinationEnum.ConfirmationPending : DestinationEnum.None))
.ForMember(dest => dest, opt => opt.MapFrom(source => source.Status == SourceEnum.Submitted ? DestinationEnum.Submitted : DestinationEnum.None))
.ForMember(dest => dest, opt => opt.MapFrom(source => source.Status == SourceEnum.NotSet ? DestinationEnum.Unset : DestinationEnum.None)));
var mapper = config.CreateMapper();
var entityClassObj = new EntityClass { IsExempt = true, IsOverdue = true, Status = SourceEnum.InProgress };
var result = mapper.Map<DestinationEnum>(entityClassObj);
When I run my code, it returns:
Custom configuration for members is only supported for top-level individual members on a type.
I tried the solution from here but unfortunately the IncludeMembers method is not available. I am using AutoMapper 6.0.2.