public AccountController(
     IConfigurationRoot config,
     WebDbRepository repo,
     IHostingEnvironment env)
     : base(config, repo, env, null, null)
 {
 }
 public ApiTagController(
     IConfigurationRoot config,
     WebDbRepository repo,
     IHostingEnvironment env,
     ILogger <ApiAccountController> logger,
     IMailService mailService)
     : base(config, repo, env, logger, mailService)
 {
 }
 public static void LogErrorEx(
     this ILogger logger,
     Exception exception,
     WebDbRepository repo,
     bool withStackTrace = false,
     string description  = "")
 {
     logger.LogEx(LogLevel.Error, exception, repo, withStackTrace, description);
 }
 public static void LogEx(
     this ILogger logger,
     LogLevel logLevel,
     Exception exception,
     WebDbRepository repo,
     bool withStackTrace = false,
     string description  = "")
 {
     logger.Log(
         logLevel,
         new EventId((int)DateTime.Now.ToFileTimeUtc(), description),
         new { withStackTrace = withStackTrace, repository = repo },
         exception,
         (o, ex) =>
     {
         return(ex.MergeMsgInnerExMsgs());
     });
 }
        public BaseController(
            IConfigurationRoot config
            , WebDbRepository repo
            , IHostingEnvironment env
            , ILogger logger
            , IMailService mailService)
            : base()
        {
            _changedAccessToken  = null;
            _changedRefreshToken = null;

            _config      = config;
            _repo        = repo;
            _env         = env;
            _mailService = mailService;

            _logger = logger;

            if (_repo != null)
            {
                _repo.ChangeAccessToken += Reader_ChangeAccessToken;

                _repo.SetTokenFunctions(
                    () =>
                {
                    return(string.IsNullOrEmpty(_changedRefreshToken) ? GetCookieValue($"{TOKENS_KEY}:{REFRESH_TOKEN_KEY}") : _changedRefreshToken);
                },
                    () =>
                {
                    return(string.IsNullOrEmpty(_changedAccessToken) ? GetCookieValue($"{TOKENS_KEY}:{ACCESS_TOKEN_KEY}") : _changedAccessToken);
                });
                //_repo.RequestPropertiesInit += _repo_RequestPropertiesInit;
            }

            _checkedAccessToken = null;
        }