DocSpace-client/common/services/ASC.AuditTrail/Models/Mapping/LoginEventMappingAction.cs

34 lines
1.6 KiB
C#
Raw Normal View History

namespace ASC.AuditTrail.Models.Mapping.Actions;
2022-02-03 11:16:34 +00:00
public class LoginEventMappingAction : IMappingAction<LoginEventQuery, LoginEventDTO>
2022-02-03 11:02:49 +00:00
{
2022-02-03 11:16:34 +00:00
private readonly UserFormatter _userFormatter;
private readonly AuditActionMapper _auditActionMapper;
public LoginEventMappingAction(UserFormatter userFormatter, AuditActionMapper auditActionMapper)
{
_userFormatter = userFormatter;
_auditActionMapper = auditActionMapper;
}
public void Process(LoginEventQuery source, LoginEventDTO destination, ResolutionContext context)
2022-02-03 11:02:49 +00:00
{
2022-02-03 11:16:34 +00:00
if (source.LoginEvents.Description != null)
destination.Description = JsonConvert.DeserializeObject<IList<string>>(
source.LoginEvents.Description,
new JsonSerializerSettings
{
DateTimeZoneHandling = DateTimeZoneHandling.Utc
});
destination.UserName = (!string.IsNullOrEmpty(source.User?.FirstName) && !string.IsNullOrEmpty(source.User?.LastName))
? _userFormatter.GetUserName(source.User.FirstName, source.User.LastName)
: !string.IsNullOrWhiteSpace(source.LoginEvents.Login)
? source.LoginEvents.Login
: source.LoginEvents.UserId == Core.Configuration.Constants.Guest.ID
? AuditReportResource.GuestAccount
: AuditReportResource.UnknownAccount;
destination.ActionText = _auditActionMapper.GetActionText(destination);
2022-02-03 11:02:49 +00:00
}
}