/// <inheritdoc/> public async Task AddDefaultEventAsync(ICustomPrincipal principal, object data, SubEventType subEventType, OutcomeType outcomeType = OutcomeType.Success) { try { Ensure.ArgumentNotNull(principal, nameof(principal)); if (!principal.IsInRole(RoleType.Service)) { XDASv2Event xdasEvent = CreateXDASEvent(principal, subEventType, outcomeType); Target target = new Target() { Entity = CreateTargetEntity() }; target.Data = data; xdasEvent.Target = target; var command = new CreateAuditEventCommand() { Event = xdasEvent }; await mediator.Send(command); } } catch (Exception e) { logger.LogError(e, e.Message); } }
/// <summary> /// Creates a model based on the given domain entity. /// </summary> /// <param name="entity">The domain entity.</param> /// <param name="serializer">The JSON serializer.</param> /// <returns>The domain entity as a model.</returns> public static AuditEventModel Create(AuditEventEntity entity, IDefaultJsonSerializer serializer) { if (entity == null) { return(null); } var model = new AuditEventModel { Timestamp = entity.Timestamp, EventType = Enum.TryParse(entity.EventType.ToString(), out EventType eventType) ? eventType : EventType.INVOKE_SERVICE, SubEventType = Enum.TryParse(entity.SubEventType.ToString(), out SubEventType subEventType) ? subEventType : SubEventType.None, Xdas = serializer.Deserialize <XDASv2Event>(entity.EventSerialized) }; return(model); } }