AuditTrail: add events type converter
This commit is contained in:
parent
f7eda83bb0
commit
4e497e4764
@ -0,0 +1,74 @@
|
||||
namespace ASC.AuditTrail.Models.Mapping
|
||||
{
|
||||
public class EventsConverter : ITypeConverter<LoginEventQuery, LoginEvent>, ITypeConverter<AuditEventQuery, AuditEvent>
|
||||
{
|
||||
private readonly UserFormatter _userFormatter;
|
||||
private readonly AuditActionMapper _auditActionMapper;
|
||||
private readonly MessageTarget _messageTarget;
|
||||
|
||||
public EventsConverter(
|
||||
UserFormatter userFormatter,
|
||||
AuditActionMapper actionMapper,
|
||||
MessageTarget messageTarget)
|
||||
{
|
||||
_userFormatter = userFormatter;
|
||||
_auditActionMapper = actionMapper;
|
||||
_messageTarget = messageTarget;
|
||||
}
|
||||
|
||||
public LoginEvent Convert(LoginEventQuery source, LoginEvent destination, ResolutionContext context)
|
||||
{
|
||||
var result = context.Mapper.Map<LoginEvent>(source.Event);
|
||||
|
||||
if (source.Event.DescriptionRaw != null)
|
||||
{
|
||||
result.Description = JsonConvert.DeserializeObject<IList<string>>(source.Event.DescriptionRaw,
|
||||
new JsonSerializerSettings
|
||||
{
|
||||
DateTimeZoneHandling = DateTimeZoneHandling.Utc
|
||||
});
|
||||
}
|
||||
|
||||
result.UserName = (!string.IsNullOrEmpty(source.FirstName) && !string.IsNullOrEmpty(source.LastName))
|
||||
? _userFormatter.GetUserName(source.FirstName, source.LastName)
|
||||
: !string.IsNullOrWhiteSpace(source.Event.Login)
|
||||
? source.Event.Login
|
||||
: source.Event.UserId == Core.Configuration.Constants.Guest.ID
|
||||
? AuditReportResource.GuestAccount
|
||||
: AuditReportResource.UnknownAccount;
|
||||
|
||||
result.ActionText = _auditActionMapper.GetActionText(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public AuditEvent Convert(AuditEventQuery source, AuditEvent destination, ResolutionContext context)
|
||||
{
|
||||
var result = context.Mapper.Map<AuditEvent>(source.Event);
|
||||
|
||||
if (source.Event.DescriptionRaw != null)
|
||||
{
|
||||
result.Description = JsonConvert.DeserializeObject<IList<string>>(
|
||||
JsonConvert.ToString(source.Event.DescriptionRaw),
|
||||
new JsonSerializerSettings
|
||||
{
|
||||
DateTimeZoneHandling = DateTimeZoneHandling.Utc
|
||||
});
|
||||
}
|
||||
|
||||
result.Target = _messageTarget.Parse(source.Event.Target);
|
||||
|
||||
result.UserName = (source.FirstName != null && source.LastName != null) ? _userFormatter.GetUserName(source.FirstName, source.LastName) :
|
||||
source.Event.UserId == Core.Configuration.Constants.CoreSystem.ID ? AuditReportResource.SystemAccount :
|
||||
source.Event.UserId == Core.Configuration.Constants.Guest.ID ? AuditReportResource.GuestAccount :
|
||||
source.Event.Initiator ?? AuditReportResource.UnknownAccount;
|
||||
|
||||
result.ActionText = _auditActionMapper.GetActionText(result);
|
||||
result.ActionTypeText = _auditActionMapper.GetActionTypeText(result);
|
||||
result.Product = _auditActionMapper.GetProductText(result);
|
||||
result.Module = _auditActionMapper.GetModuleText(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user