Reputation: 2240
Lets assume I have the following classes
public class foo
{
public string Value;
}
public class bar
{
public string Value1;
public string Value2;
}
Now I want to configure Auto Map, to Map Value1 to Value if Value1 starts with "A", but otherwise I want to map Value2 to Value.
This is what I have so far:
Mapper
.CreateMap<foo,bar>()
.ForMember(t => t.Value,
o =>
{
o.Condition(s =>
s.Value1.StartsWith("A"));
o.MapFrom(s => s.Value1);
<<***I want to throw Exception here***>>
})
However I know how can I give value 1 or value 2 on Conditional basis but don't know how to put some custom code , call a function or throw an Exception
Please Guide.
Upvotes: 10
Views: 14441
Reputation: 152624
You can pass a lambda to ResolveUsing
:
.ForMember(f => f.Value, o => o.ResolveUsing(b =>
{
if (b.Value1.StartsWith("A"))
{
return b.Value1;
}
return b.Value2;
}
));
Upvotes: 21