I am trying to map between two classes ParentA and ParentB using AutoMapper with a custom value converter. However, I am encountering issues when mapping back from ParentB to ParentA.
we are using Automapper attributes to do the mappings
Here is my code:
ParentA ssssssss = new ParentA { Id = 1, isActive = "Y", Name = "test" };
var response = automapper.Map<ParentB>(ssssssss);
response.Value = 500;
var yyyy = automapper.Map<ParentA>(response);
Class Definitions:
public class ParentA
{
public int Id { get; set; }
public string Name { get; set; }
public string isActive { get; set; }
}
[AutoMap(typeof(ParentA), ReverseMap = true)]
public class ParentB
{
public int Id { get; set; }
public string Name { get; set; }
[ValueConverter(typeof(IntConverter))]
[SourceMember("isActive")]
public int Value { get; set; }
}
convertr is
public class IntConverter : IValueConverter<string, int>
{
public int Convert(string sourceMember, ResolutionContext context)
{
if (sourceMember == "Y") return 100;
if (sourceMember == "N") return 200;
if (sourceMember == "P") return 500;
return 1000;
}
public string Convert(int sourceMember, ResolutionContext context)
{
throw new NotImplementedException();
}
}
The mapping from ParentA to ParentB works correctly.
When mapping back from ParentB to ParentA, it fails because the Convert method for the reverse mapping in IntConverter is not implemented.
Could you help me to implement the reverse mapping in IValueConverter?