public async Task <IActionResult> Pin(int pin)
        {
            var pinAttempts = _sessionManager.GetPinAttempts(HttpContext);

            _sessionManager.SetPinAttempts(HttpContext, ++pinAttempts);

            int cardId = _sessionManager.GetSessionCardId(HttpContext).Value;

            int maxAttempts = 4;

            if (pinAttempts >= maxAttempts)
            {
                //Bloquear tarjeta
                var card = await _atmService.BlockCardAsync(cardId);

                return(RedirectToAction(nameof(CardBlocked)));
            }

            bool isValid = await _atmService.IsValidCardCombinationAsync(cardId, pin);

            if (isValid)
            {
                _sessionManager.Authorize(HttpContext);
                return(RedirectToAction(nameof(Menu)));
            }

            _sessionManager.SetPinAttempts(HttpContext, ++pinAttempts);

            //return RedirectToAction(nameof(Pin));
            return(RedirectToAction(nameof(Pin), new { @retry = true }));
        }