public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            _stopwatch.Start();

            string actionName     = filterContext.ActionDescriptor.ActionName;
            string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
            var    parameters     = new Dictionary <string, object>(filterContext.ActionParameters);

            var ThreadId = Thread.CurrentThread.ManagedThreadId;

            string message = string.Format("[{0}] Start execute Controller: {1}, Action: {2}",
                                           ThreadId, controllerName, actionName) + " Parametes: {Parametes} ";

            SeriLogger.Info(message, MyDictionaryToJson(parameters));
        }
        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
            _stopwatch.Stop();
            var elapsed = _stopwatch.Elapsed.ToString();

            string actionName     = filterContext.ActionDescriptor.ActionName;
            string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;

            var ThreadId = Thread.CurrentThread.ManagedThreadId;

            string message = string.Format("[{0}] Finish execute Controller: {1}, Action: {2}, Executed time: {3}",
                                           ThreadId, controllerName, actionName, elapsed);

            SeriLogger.Info(message);
        }