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;
        }