public async Task <IActionResult> Auth(TokenRequestDto tokenRequestDto)
        {
            switch (tokenRequestDto.GrantType)
            {
            case "password":
                var result = await _utilities.GenerateNewTokenAsync(tokenRequestDto);

                if (result.status)
                {
                    return(Ok(tokenRequestDto));
                }
                else
                {
                    _logger.LogWarning($"{tokenRequestDto.UserName} درخواست لاگین ناموفق داشته است" + "---" + result.message);
                    return(Unauthorized(result.message));
                }

            case "refresh_token":
                var res = await _utilities.RefreshAccessTokenAsync(tokenRequestDto);

                if (res.status)
                {
                    return(Ok(tokenRequestDto));
                }
                else
                {
                    _logger.LogWarning($"{tokenRequestDto.UserName} درخواست لاگین ناموفق داشته است" + "---" + res.message);
                    return(Unauthorized(res.message));
                }

            default:
                return(Unauthorized("خطا در اعتبار سنجی دوباره"));
            }
        }
        public async Task <IActionResult> Login(TokenRequestDto tokenRequestDto)
        {
            switch (tokenRequestDto.GrantType)
            {
            case "password":
                var result = await _utilities.GenerateNewTokenAsync(tokenRequestDto);

                if (result.status)
                {
                    var userForReturn = _mapper.Map <UserForDetailedDto>(result.user);

                    return(Ok(new LoginResponseDto
                    {
                        token = result.token,
                        refresh_token = result.refresh_token,
                        user = userForReturn
                    }));
                }
                else
                {
                    _logger.LogWarning($"{tokenRequestDto.UserName} درخواست لاگین ناموفق داشته است" + "---" + result.message);
                    return(Unauthorized("1x111keyvanx11"));
                }

            case "refresh_token":
                var res = await _utilities.RefreshAccessTokenAsync(tokenRequestDto);

                if (res.status)
                {
                    return(Ok(res));
                }
                else
                {
                    _logger.LogWarning($"{tokenRequestDto.UserName} درخواست لاگین ناموفق داشته است" + "---" + res.message);
                    return(Unauthorized("0x000keyvanx00"));
                }

            default:
                return(Unauthorized("خطا در اعتبار سنجی دوباره"));
            }
        }