I have a complex (entity model) class QuoteVolumeMultiplier
and class:
public class Pair<T1, T2>
{
public T1 Text { get; set; }
public T2 Value { get; set; }
}
Then I want to implement some logic from QuoteVolumeMultiplier
to Text
value of Pair<T1, T2>
CreateMap<QuoteVolumeMultiplier, Pair<string, int>>()
.ForMember(d => d.Value, o => o.MapFrom(s => s.Id))
.ForMember(d => d.Text, o => o.MapFrom<VolumeMultiplierTextResolver>())
;
where:
public class VolumeMultiplierTextResolver : IValueResolver<QuoteVolumeMultiplier, Pair<string, int>, string>
{
public string Resolve(QuoteVolumeMultiplier source, Pair<string, int> destination, string destMember, ResolutionContext context)
{
return string.Empty;
//string minSum = source.PreviousVolumeMultiplierId.HasValue ? (source.MaxSum.HasValue ? (source.PreviousVolumeMultiplier!.MaxSum.Value + 1).DollarFormatting() : source.PreviousVolumeMultiplier!.MaxSum.Value.DollarFormatting()) : "$0";
//string maxSum = source.MaxSum.HasValue ? (source.PreviousVolumeMultiplierId.HasValue ? source.MaxSum.Value.DollarFormatting() : (source.MaxSum + 1).Value.DollarFormatting()) : "max";
//return $"{minSum} - {maxSum}";
}
}
but when I try this code I get
AutoMapperMappingException: Unable to create a map expression from .
(QuoteGenerator.Data.Models.QuoteVolumeMultiplier) to String.Text
(System.String)Mapping types: QuoteVolumeMultiplier -> Pair
2 QuoteGenerator.Data.Models.QuoteVolumeMultiplier -> QuoteGenerator.Infrastructure.DTO.Common.Pair
2[[System.String,
System.Private.CoreLib, Version=8.0.0.0, Culture=neutral,
PublicKeyToken=7cec85d7bea7798e],[System.Int32,
System.Private.CoreLib, Version=8.0.0.0, Culture=neutral,
PublicKeyToken=7cec85d7bea7798e]]Type Map configuration: QuoteVolumeMultiplier -> Pair
2 QuoteGenerator.Data.Models.QuoteVolumeMultiplier -> QuoteGenerator.Infrastructure.DTO.Common.Pair
2[[System.String,
System.Private.CoreLib, Version=8.0.0.0, Culture=neutral,
PublicKeyToken=7cec85d7bea7798e],[System.Int32,
System.Private.CoreLib, Version=8.0.0.0, Culture=neutral,
PublicKeyToken=7cec85d7bea7798e]]Destination Member: Text
I try to implement according to page: https://docs.automapper.org/en/stable/Custom-value-resolvers.html and don’t understand what is wrong. Seems, I implement correctly…