public async Task <IActionResult> AuthModelWithRefreshToken([FromBody] AuthModelWithRefreshToken authData)
        {
            IActionResult response = Unauthorized();

            try
            {
                var user = await _authService.AuthenticateUser(authData);

                if (user != null)
                {
                    if (user.RefreshTokenExpiryTime < DateTime.Now)
                    {
                        return(new StatusCodeResult(402));
                    }

                    var tokenString  = TokenPublisher.GenerateAccessToken(user, _config);
                    var refreshToken = TokenPublisher.GenerateRefreshToken();

                    user.AccessToken            = tokenString;
                    user.RefreshToken           = refreshToken;
                    user.RefreshTokenExpiryTime = DateTime.Now.AddYears(1);

                    await _authService.UpdateRefreshToken(new UpdateRefreshTokenModel
                    {
                        Id                     = user.Id,
                        RefreshToken           = user.RefreshToken,
                        RefreshTokenExpiryTime = user.RefreshTokenExpiryTime
                    });

                    response = new OkObjectResult(
                        user
                        );

                    logger.Information(
                        $"Type: AuthenticationController; Method: AuthModelWithRefreshToken; Info: AuthModelWithRefreshToken by Login: {authData.RefreshToken} successfully");
                }
            }
            catch (Exception e)
            {
                logger.Error($"Type: AuthenticationController; Method: AuthModelWithRefreshToken; Error: {e.Message}");
                throw;
            }

            return(response);
        }
        public async Task <AuthResultModel> AuthenticateUser(AuthModelWithRefreshToken data)
        {
            AuthResultModel result = null;

            try
            {
                var authData = await _authServiceRepository.GetUserByRefreshToken(data.RefreshToken);

                result = MapperExtensions.Convert <AuthData, AuthResultModel>(authData);
                logger.Information($"AuthenticateUser [RefreshToken ]  by {data.RefreshToken} was successfully");
            }
            catch (Exception e)
            {
                logger.Error($"Method: AuthenticateUser with RefreshToken  Message: {e.Message}");
                throw;
            }

            return(result);
        }