ASC.AuditTrail: refactoring
This commit is contained in:
parent
45b6e59350
commit
93506010b8
@ -20,7 +20,7 @@ global using ASC.Web.Core.Files;
|
|||||||
global using ASC.Web.Files.Classes;
|
global using ASC.Web.Files.Classes;
|
||||||
global using ASC.Web.Files.Utils;
|
global using ASC.Web.Files.Utils;
|
||||||
global using ASC.AuditTrail.Models;
|
global using ASC.AuditTrail.Models;
|
||||||
global using ASC.AuditTrail.Models.Mapping;
|
global using ASC.AuditTrail.Models.Mappings;
|
||||||
global using ASC.Common.Mapping;
|
global using ASC.Common.Mapping;
|
||||||
|
|
||||||
global using Autofac;
|
global using Autofac;
|
||||||
|
@ -49,6 +49,6 @@ public class AuditEvent : BaseEvent, IMapFrom<AuditEventQuery>
|
|||||||
profile.CreateMap<DbAuditEvent, AuditEvent>();
|
profile.CreateMap<DbAuditEvent, AuditEvent>();
|
||||||
|
|
||||||
profile.CreateMap<AuditEventQuery, AuditEvent>()
|
profile.CreateMap<AuditEventQuery, AuditEvent>()
|
||||||
.ConvertUsing<EventsConverter>();
|
.ConvertUsing<EventTypeConverter>();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -23,8 +23,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using ASC.AuditTrail.Models.Mapping;
|
|
||||||
|
|
||||||
namespace ASC.AuditTrail.Models;
|
namespace ASC.AuditTrail.Models;
|
||||||
|
|
||||||
public class LoginEvent : BaseEvent, IMapFrom<LoginEventQuery>
|
public class LoginEvent : BaseEvent, IMapFrom<LoginEventQuery>
|
||||||
@ -37,6 +35,6 @@ public class LoginEvent : BaseEvent, IMapFrom<LoginEventQuery>
|
|||||||
profile.CreateMap<DbLoginEvent, LoginEvent>();
|
profile.CreateMap<DbLoginEvent, LoginEvent>();
|
||||||
|
|
||||||
profile.CreateMap<LoginEventQuery, LoginEvent>()
|
profile.CreateMap<LoginEventQuery, LoginEvent>()
|
||||||
.ConvertUsing<EventsConverter>();
|
.ConvertUsing<EventTypeConverter>();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,74 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,74 @@
|
|||||||
|
namespace ASC.AuditTrail.Models.Mappings;
|
||||||
|
|
||||||
|
public class EventTypeConverter : ITypeConverter<LoginEventQuery, LoginEvent>,
|
||||||
|
ITypeConverter<AuditEventQuery, AuditEvent>
|
||||||
|
{
|
||||||
|
private readonly UserFormatter _userFormatter;
|
||||||
|
private readonly AuditActionMapper _auditActionMapper;
|
||||||
|
private readonly MessageTarget _messageTarget;
|
||||||
|
|
||||||
|
public EventTypeConverter(
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
@ -90,6 +90,6 @@ public class AuditEventsRepository
|
|||||||
query = query.Take((int)limit);
|
query = query.Take((int)limit);
|
||||||
}
|
}
|
||||||
|
|
||||||
return _mapper.Map<List<AuditEventQuery>, List<AuditEvent>>(query.ToList());
|
return _mapper.Map<List<AuditEventQuery>, IEnumerable<AuditEvent>>(query.ToList());
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -57,7 +57,7 @@ public class LoginEventsRepository
|
|||||||
})
|
})
|
||||||
.Take(chunk);
|
.Take(chunk);
|
||||||
|
|
||||||
return _mapper.Map<List<LoginEventQuery>, List<LoginEvent>>(query.ToList());
|
return _mapper.Map<List<LoginEventQuery>, IEnumerable<LoginEvent>>(query.ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<LoginEvent> Get(int tenant, DateTime fromDate, DateTime to)
|
public IEnumerable<LoginEvent> Get(int tenant, DateTime fromDate, DateTime to)
|
||||||
@ -77,7 +77,7 @@ public class LoginEventsRepository
|
|||||||
LastName = p.LastName
|
LastName = p.LastName
|
||||||
};
|
};
|
||||||
|
|
||||||
return _mapper.Map<List<LoginEventQuery>, List<LoginEvent>>(query.ToList());
|
return _mapper.Map<List<LoginEventQuery>, IEnumerable<LoginEvent>>(query.ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public int GetCount(int tenant, DateTime? from = null, DateTime? to = null)
|
public int GetCount(int tenant, DateTime? from = null, DateTime? to = null)
|
||||||
|
Loading…
Reference in New Issue
Block a user