public Task <T> ExecuteAsync <T>(AsyncFunc <T> action)
        {
            if (_logger.IsEnabled(LogLevel.Information))
            {
                var sw     = Stopwatch.StartNew();
                var result = action.Invoke();
                sw.Stop();

                return(result);
            }

            return(action.Invoke());
        }