public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            using (ConexionEjecucionDB db = new ConexionEjecucionDB())
            {
                ///revisar esta logica
                var user = db.AspNetUsers.Where(x => x.Email == model.Email).FirstOrDefault();
                if (user == null)
                {
                    ModelState.AddModelError("", "Intento de inicio de sesión no válido.");
                    return(View(model));
                }
                var block = db.AspNetUsersBlock.Where(y => y.UserId == user.Id).FirstOrDefault();
                if (block != null)
                {
                    return(new RedirectToRouteResult(new RouteValueDictionary(new { action = "Bloqueado", controller = "Error" })));
                }
                else
                {
                    var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout : true);

                    switch (result)
                    {
                    case SignInStatus.Success:
                        return(RedirectToLocal(returnUrl));

                    case SignInStatus.LockedOut:
                        return(View("Lockout"));

                    case SignInStatus.RequiresVerification:
                        return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }));

                    case SignInStatus.Failure:
                    default:
                        ModelState.AddModelError("", "Intento de inicio de sesión no válido.");
                        return(View(model));
                    }
                }
            }
            // No cuenta los errores de inicio de sesión para el bloqueo de la cuenta
            // Para permitir que los errores de contraseña desencadenen el bloqueo de la cuenta, cambie a shouldLockout: true
            //var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: true);
            //switch (result)
            //{
            //    case SignInStatus.Success:
            //        return RedirectToLocal(returnUrl);
            //    case SignInStatus.LockedOut:
            //        return View("Lockout");
            //    case SignInStatus.RequiresVerification:
            //        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
            //    case SignInStatus.Failure:
            //    default:
            //        ModelState.AddModelError("", "Intento de inicio de sesión no válido.");
            //        return View(model);
            //}
        }