2022-02-03 11:02:49 +00:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
using AutoMapper;
|
|
|
|
|
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using ASC.MessagingSystem;
|
|
|
|
|
using ASC.Core.Users;
|
|
|
|
|
using ASC.AuditTrail.Mappers;
|
|
|
|
|
|
2022-02-03 11:16:34 +00:00
|
|
|
|
namespace ASC.AuditTrail.Models.Mapping.Actions;
|
|
|
|
|
|
|
|
|
|
public class AuditEventMappingAction : IMappingAction<AuditEventQuery, AuditEventDto>
|
2022-02-03 11:02:49 +00:00
|
|
|
|
{
|
2022-02-03 11:16:34 +00:00
|
|
|
|
private MessageTarget _messageTarget;
|
|
|
|
|
private UserFormatter _userFormatter;
|
|
|
|
|
private AuditActionMapper _auditActionMapper;
|
|
|
|
|
|
|
|
|
|
public AuditEventMappingAction(
|
|
|
|
|
MessageTarget messageTarget,
|
|
|
|
|
UserFormatter userFormatter,
|
|
|
|
|
AuditActionMapper auditActionMapper)
|
|
|
|
|
{
|
|
|
|
|
_messageTarget = messageTarget;
|
|
|
|
|
_userFormatter = userFormatter;
|
|
|
|
|
_auditActionMapper = auditActionMapper;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Process(AuditEventQuery source, AuditEventDto destination, ResolutionContext context)
|
2022-02-03 11:02:49 +00:00
|
|
|
|
{
|
2022-02-03 11:16:34 +00:00
|
|
|
|
if (source.AuditEvent.Description != null)
|
|
|
|
|
destination.Description = JsonConvert.DeserializeObject<IList<string>>(
|
|
|
|
|
Convert.ToString(source.AuditEvent.Description),
|
|
|
|
|
new JsonSerializerSettings { DateTimeZoneHandling = DateTimeZoneHandling.Utc });
|
|
|
|
|
|
|
|
|
|
destination.Target = _messageTarget.Parse(source.AuditEvent.Target);
|
|
|
|
|
|
|
|
|
|
destination.UserName = (source.User.FirstName != null && source.User.LastName != null) ? _userFormatter.GetUserName(source.User.FirstName, source.User.LastName) :
|
|
|
|
|
source.AuditEvent.UserId == Core.Configuration.Constants.CoreSystem.ID ? AuditReportResource.SystemAccount :
|
|
|
|
|
source.AuditEvent.UserId == Core.Configuration.Constants.Guest.ID ? AuditReportResource.GuestAccount :
|
|
|
|
|
source.AuditEvent.Initiator ?? AuditReportResource.UnknownAccount;
|
|
|
|
|
|
|
|
|
|
destination.ActionText = _auditActionMapper.GetActionText(destination);
|
|
|
|
|
destination.ActionTypeText = _auditActionMapper.GetActionTypeText(destination);
|
|
|
|
|
destination.Product = _auditActionMapper.GetProductText(destination);
|
|
|
|
|
destination.Module = _auditActionMapper.GetModuleText(destination);
|
2022-02-03 11:02:49 +00:00
|
|
|
|
}
|
|
|
|
|
}
|