public async Task <IActionResult> Login([FromBody] LoginParametersDto loginParametersDto)
        {
            IdentityCard card = await _cardManager.FindByIdAsync(loginParametersDto.CardNumber);

            // check null card
            if (card == null)
            {
                return(NotFound("please register your card"));
            }

            // check password
            var passwordCorrect = await _cardManager.CheckPasswordAsync(card, loginParametersDto.Pin);

            if (!passwordCorrect)
            {
                return(Unauthorized("pin incorrect"));
            }

            var refreshToken = _tokenManager.CreateRefreshToken(loginParametersDto.CardNumber);
            var cardDto      = _mapper.Map <CardDto>(card);

            cardDto.Bearer       = _tokenManager.CreateJwt(loginParametersDto.CardNumber);
            cardDto.RefreshToken = null;
            if (await _tokenManager.SaveRefreshToken(refreshToken))
            {
                cardDto.RefreshToken = refreshToken.Token;
            }
            return(Ok(cardDto));
        }