public override void OnActionExecuting(ActionExecutingContext context) { AuditTbModel objaudit = new AuditTbModel(); var controllerName = ((ControllerBase)context.Controller) .ControllerContext.ActionDescriptor.ControllerName; var actionName = ((ControllerBase)context.Controller) .ControllerContext.ActionDescriptor.ActionName; var area = ((ControllerBase)context.Controller) .ControllerContext.ActionDescriptor.RouteValues["area"]; var request = context.HttpContext.Request; if (!string.IsNullOrEmpty(Convert.ToString(context.HttpContext.Session.GetString(AllSessionKeys.UserId)))) { var userValue = Convert.ToInt32(context.HttpContext.Session.GetString(AllSessionKeys.UserId)); objaudit.UserId = Convert.ToString(userValue); } else { objaudit.UserId = string.Empty; } objaudit.SessionId = context.HttpContext.Session.Id; objaudit.IpAddress = Convert.ToString(_httpContextAccessor.HttpContext.Connection.RemoteIpAddress); objaudit.PageAccessed = Convert.ToString(context.HttpContext.Request.Path); // URL User Requested objaudit.LoggedInAt = DateTime.Now; if (actionName == "LogOff") { objaudit.LoggedOutAt = DateTime.Now; // Time User Logged OUT } objaudit.LoginStatus = "A"; objaudit.ControllerName = controllerName; // ControllerName objaudit.ActionName = actionName; RequestHeaders header = request.GetTypedHeaders(); Uri uriReferer = header.Referer; if (uriReferer != null) { objaudit.UrlReferrer = header.Referer.AbsoluteUri; } _auditCommand.InsertAuditData(objaudit); }
public void InsertAuditData(AuditTbModel objaudittb) { try { using (SqlConnection sqlConnection = new SqlConnection(_configuration.GetConnectionString("AuditDatabaseConnection"))) { sqlConnection.Open(); SqlTransaction dbTransaction = sqlConnection.BeginTransaction(); var para = new DynamicParameters(); para.Add("@UserID", objaudittb.UserId); para.Add("@SessionID", objaudittb.SessionId); para.Add("@IPAddress", objaudittb.IpAddress); para.Add("@PageAccessed", objaudittb.PageAccessed); para.Add("@LoggedInAt", objaudittb.LoggedInAt); para.Add("@LoggedOutAt", objaudittb.LoggedOutAt); para.Add("@LoginStatus", objaudittb.LoginStatus); para.Add("@ControllerName", objaudittb.ControllerName); para.Add("@ActionName", objaudittb.ActionName); para.Add("@UrlReferrer", objaudittb.UrlReferrer); var result = sqlConnection.Execute("Usp_AuditTB", para, dbTransaction, 0, CommandType.StoredProcedure); if (result > 0) { dbTransaction.Commit(); } else { dbTransaction.Rollback(); } } } catch (Exception) { throw; } }