public enum CurrencySymbol { USD, EUR }
public decimal Amount { get; private set; }
public CurrencySymbol Currency { get; private set; }
public static Money From(decimal amount, CurrencySymbol currency)
=> new() { Amount = amount, Currency = currency };
public class CreateOrderCommand
public CurrencySymbol CurrencySymbol { get; set; }
public decimal LowPrice { get; set; }
public decimal HighPrice { get; set; }
public Money LowPrice { get; set; }
public Money HighPrice { get; set; }
public static void Main()
var config = new MapperConfiguration(cfg =>
cfg.CreateMap<CreateOrderCommand, Order>()
config.AssertConfigurationIsValid();
var mapper = config.CreateMapper();
var source = new CreateOrderCommand
CurrencySymbol = CurrencySymbol.USD,
var destination = mapper.Map<Order>(source);