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 })); }