public HttpAuditAction(IHttpContextAccessor accessor, AuditHttpActionOptions options)
 {
     Action = new
     {
         accessor.HttpContext.TraceIdentifier,
         RequestUrl    = accessor.HttpContext.Request.GetDisplayUrl(),
         HttpMethod    = accessor.HttpContext.Request.Method,
         FormVariables = options.IncludeFormVariables ? HttpContextHelpers.GetFormVariables(accessor.HttpContext) : null
     };
 }
        /// <summary>
        /// Add audit default data - subject and action
        /// </summary>
        /// <param name="builder"></param>
        /// <param name="subjectOptions"></param>
        /// <param name="actionOptions"></param>
        /// <returns></returns>
        public static IAuditLoggingBuilder AddDefaultHttpEventData(this IAuditLoggingBuilder builder, Action <AuditHttpSubjectOptions> subjectOptions = default, Action <AuditHttpActionOptions> actionOptions = default)
        {
            var auditHttpSubjectOptions = new AuditHttpSubjectOptions();

            subjectOptions?.Invoke(auditHttpSubjectOptions);
            builder.Services.AddSingleton(auditHttpSubjectOptions);

            var auditHttpActionOptions = new AuditHttpActionOptions();

            actionOptions?.Invoke(auditHttpActionOptions);
            builder.Services.AddSingleton(auditHttpActionOptions);

            builder.Services.AddTransient <IAuditSubject, HttpAuditSubject>();
            builder.Services.AddTransient <IAuditAction, HttpAuditAction>();

            return(builder);
        }