У меня есть сопоставление между моим объектом домена и контрактом, как показано ниже: -
public class Car
{
string name { get; set; }
string model{ get; set; }
CarProperties properties { get; set; }
}
public class CarProperties
{
string color { get; set; }
string type { get; set; }
}
public class CarContract
{
string name { get; set; }
string model{ get; set; }
string color { get; set; }
string type { get; set; }
string status { get; set; }
}
public static Car GetCreateCarPayloadFromCarContract(CarContract carContract, string name, ModelType modelType)
{
var car= new Car
{
name = name,
model= modelType.ToString(),
properties = new CarProperties
{
color = carContract.color,
type = carContract.type
},
status = Status.READY.ToString()
};
return car;
}
Здесь ModelType и Status являются перечислениями. Я пытаюсь преобразовать метод GetCreateCarPayloadFromCarContract для использования автомата. Ниже то, что я сделал до сих пор. Однако я не могу отобразить имя и модель. Как я могу передать эти параметры в автомат? И то, что я сделал для статуса, это хорошо?
CreateMap<Car,CarContract>()
.ForMember(dest => dest.color, opt => opt.MapFrom(src => src.properties.color))
.ForMember(dest => dest.type, opt => opt.MapFrom(src => src.properties.type))
.ReverseMap()
.ForMember(dest => dest.properties.color, opt => opt.MapFrom(src => src.color))
.ForMember(dest => dest.properties.type, opt => opt.MapFrom(src => src.type))
.ForMember(dest => dest.status, opt => opt.MapFrom(src => Status.READY.ToString()))
Может кто-нибудь помочь?