This commit is contained in:
pavelbannov 2022-10-11 13:14:50 +03:00
parent 8d528450dc
commit 9d050b0c6a
2 changed files with 17 additions and 9 deletions

View File

@ -57,8 +57,10 @@ public class BaseEvent : IMapFrom<LoginEvent>
public virtual void Mapping(Profile profile)
{
profile.CreateMap<LoginEvent, BaseEvent>()
.ConvertUsing<BaseEventTypeConverter>();
profile.CreateMap<LoginEvent, BaseEvent>()
.ForMember(r => r.IP, opt => opt.MapFrom<BaseEventTypeIpResolver>())
.ForMember(r => r.Date, opt => opt.MapFrom<BaseEventTypeDateResolver>())
;
}
}

View File

@ -27,20 +27,26 @@
namespace ASC.MessagingSystem.Mapping;
[Scope]
public class BaseEventTypeConverter : ITypeConverter<LoginEvent, BaseEvent>
public class BaseEventTypeIpResolver : IValueResolver<LoginEvent, BaseEvent, string>
{
public string Resolve(LoginEvent source, BaseEvent destination, string destMember, ResolutionContext context)
{
return source.Ip.Split(':').Length > 1 ? source.Ip.Split(':')[0] : source.Ip;
}
}
[Scope]
public class BaseEventTypeDateResolver : IValueResolver<LoginEvent, BaseEvent, DateTime>
{
private readonly TenantUtil _tenantUtil;
public BaseEventTypeConverter(TenantUtil tenantUtil)
public BaseEventTypeDateResolver(TenantUtil tenantUtil)
{
_tenantUtil = tenantUtil;
}
public BaseEvent Convert(LoginEvent source, BaseEvent destination, ResolutionContext context)
public DateTime Resolve(LoginEvent source, BaseEvent destination, DateTime destMember, ResolutionContext context)
{
var baseEvent = context.Mapper.Map<LoginEvent, BaseEvent>(source);
baseEvent.IP = source.Ip.Split(':').Length > 1 ? source.Ip.Split(':')[0] : source.Ip;
baseEvent.Date = _tenantUtil.DateTimeFromUtc(source.Date);
return baseEvent;
return _tenantUtil.DateTimeFromUtc(source.Date);
}
}