public override void OnActionExecuting(ActionExecutingContext filterContext) { // Stores the Request in an Accessible object var request = filterContext.HttpContext.Request; // Generate an audit Audit audit = new Audit() { // Our Username (if available) UserName = (request.IsAuthenticated) ? filterContext.HttpContext.User.Identity.Name : "Anonymous", // The IP Address of the Request IPAddress = request.ServerVariables["HTTP_X_FORWARDED_FOR"] ?? request.UserHostAddress, // The URL that was accessed AreaAccessed = request.RawUrl, StudentId = 1 }; // Stores the Audit in the Database AuditRepository auditRepo = new AuditRepository(); auditRepo.Add(audit); // Finishes executing the Action as normal base.OnActionExecuting(filterContext); }
public Audit Add(Audit audit) { var sqlQuery = "INSERT INTO Audit" + "(StudentId, " + "UserName, " + "IPAddress, " + "AreaAccessed) VALUES" + "(@StudentId, " + "@UserName, " + "@IPAddress, " + "@AreaAccessed )" + "SELECT CAST(SCOPE_IDENTITY() as int)"; var auditId = this._db.Query<int>(sqlQuery, audit).Single(); return audit; }