Я новичок в AutoMapper и имею проблему, которую пытаюсь решить.
Если у меня есть такой исходный класс:
public class Membership
{
public int MembershipId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string OrganizationName { get; set; }
public List<Address> Addresses { get; set; }
}
И класс Address выглядит так:
public class Address
{
public int AddressId{ get; set; }
public int RefAddressTypeId { get; set; }
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
public bool IsPreferredAddress { get; set; }
}
Мой класс назначения:
public class UserInformationModel
{
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Organization { get; set; }
public string EmailAddress { get; set; }
public PhysicalAddress BillingAddress { get; set; }
public PhysicalAddress ShippingAddress { get; set; }
}
И класс адресов назначения:
public class PhysicalAddress
{
public AddressType AddressType{get; set;}
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string PostalCode { get; set; }
}
Я настроил отображение так:
Mapper.CreateMap<MinistryMattersIntegration.BusinessObjects.Entities.Cokesbury.Membership, UserInformationModel>()
.ForMember(dest => dest.Organization, opt => opt.MapFrom(src=>src.OrganizationName));
Это работает для членства в UserInformationModel, но теперь мне нужно, чтобы адреса работали. Однако следует отметить одну важную вещь: пункт назначения - это один платежный адрес и один адрес доставки, тогда как в исходной модели все адреса сохраняются в виде списка. Чтобы найти адреса доставки и выставления счетов из списка, посмотрите на RefAddressTypdId и IsPreferredAddress. Может существовать только один предпочтительный адрес с конкретным RefAddressTypeId.
Итак, мой вопрос: как вы заставляете AutoMapper выполнять такое отображение? Возможно ли это, или мне лучше просто использовать обычный код отображения?