Я столкнулся с проблемой.У меня есть бизнес-правило, которое определено в Entity, при проверке этого правила в сущности, я выкидываю UserFriendlyException в случае нарушения бизнес-правила.Пример:
private DateTime? _expireDate;
public DateTime? ExpireDate {
get => _expireDate;
set {
if (value.HasValue) {
_expireDate = EnsureExpireDateRules (value.Value);
PeriodInMonth = 0;
}
}
}
private DateTime EnsureExpireDateRules (DateTime dateTime) {
dateTime = dateTime.GetDateZeroTime ();
var currentUtcDateTime = DateTime.UtcNow.GetDateZeroTime ();
if (dateTime <= currentUtcDateTime)
throw new UserFriendlyException ("License date should be at least one day late than today.");
return dateTime;
}
А в профиле Automapper у меня есть правило по умолчанию
CreateMap ();
И когда это происходит, у меня нет UserFriendlyException на клиентесторона, вместо этого у меня есть обычное исключение с кодом 500 (Внутренняя ошибка сервера).В лог-системе я вижу следующее:
AutoMapper.AutoMapperMappingException: Error mapping types.
Mapping types:
LicenseRequestInput -> LicenseRequest
LicenseManager.LicenseManager.Dto.LicenseRequestInput -> LicenseManager.LicenseManager.Entities.LicenseRequest
Type Map configuration:
LicenseRequestInput -> LicenseRequest
LicenseManager.LicenseManager.Dto.LicenseRequestInput -> LicenseManager.LicenseManager.Entities.LicenseRequest
Destination Member:
ExpireDate
---> Abp.UI.UserFriendlyException: License date should be at least one day late than today.
at LicenseManager.LicenseManager.Entities.LicenseRequest.EnsureExpireDateRules(DateTime dateTime) in /Users/grinay/License management portal/src/LicenseManager.Core/LicenseManager/Entities/LicenseRequest.cs:line 56
.....more......
Похоже, ABP не перехватывает исключение, которое приходит из профиля Automap.Пожалуйста, помогите мне решить эту проблему.