Igavshne
Igavshne

Reputation: 697

Get the AuditAction's Username property in derived AuditDataProvider

I am using Audit.Net and Audit.MVC 14.2.2.0. Great framework!

I have extended the AuditDataProvider:

 public class SQLAuditDataProvider : AuditDataProvider

In that class, I would like to get hold of the auditEvent's Action object, so that I can log the Username. (I don't want the Environment's username, although I can get it.) When I debug, I can see that Action property, but when I try to type it, I get a compile time error.

I could store it as a CustomField in the HomeController, but it would be preferable simply to get it in the SQLAuditDataProvider.

I'm probably doing something stupid, but what have I missed?

Upvotes: 1

Views: 135

Answers (1)

thepirat000
thepirat000

Reputation: 13114

You can cast the AuditEvent as AuditEventMvcAction and then access the Action property:

var action = (auditEvent as AuditEventMvcAction).Action;

Or you can use the convenient extension method:

using Audit.Mvc;

var action = auditEvent.GetMvcAuditAction();

// Or from the audit scope
var action = auditScope.GetMvcAuditAction();

Upvotes: 1

Related Questions