Please consider the following source code
// Data Model
public class CustomerDataModel
{
public string Name { get; set; }
public string Family { get; set; }
public IEnumerable<CustomerDetailDataModel> CustomerDetail { get; set; }
public CustomerDataModel()
{
CustomerDetail = new List<CustomerDetailDataModel>();
}
}
public class CustomerDetailDataModel
{
public int Id { get; set; }
public string Info { get; set; }
}
// Request Model
public class CustomerRequestModel
{
public string Name { get; set; }
public IEnumerable<CustomerDetailRequestModel> CustomerDetail { get; set; }
public CustomerRequestModel()
{
CustomerDetail = new List<CustomerDetailRequestModel>();
}
}
public class CustomerDetailRequestModel
{
public int Id { get; set; }
}
Now consider these values
// Data Model
var customerDetailDataModel = new List<CustomerDetailDataModel>();
customerDetailDataModel.Add(new CustomerDetailDataModel() { Id = 1, Info = "nothing" });
var customerDataModel = new CustomerDataModel()
{
Name = "Jack",
Family = "Robbin",
CustomerDetail = customerDetailDataModel
};
// Request Model
var customerDetailRequestModel = new List<CustomerDetailRequestModel>();
customerDetailRequestModel.Add(new CustomerDetailRequestModel() { Id = 2 });
var customerRequestModel = new CustomerRequestModel()
{
Name = "Maya",
CustomerDetail = customerDetailRequestModel
};
How can I merge data from CustomerDataModel to CustomerRequestModel with Automapper 10+ and also in reverse?
If data exists in the destination keep it if not merge it (replace it with the source).