public IActionResult Autenticar(LoginVm dadosLogin)
        {
            if (!ModelState.IsValid)
            {
                return(View("Login", dadosLogin));
            }

            Cliente cliente = _context.Clientes.FirstOrDefault(c => c.Email == dadosLogin.Email);

            if (cliente != null)
            {
                if (UtilSenha.ValidarSenha(cliente.Senha, dadosLogin.Senha))
                {
                    var cookieOptions = new CookieOptions()
                    {
                        Expires     = DateTimeOffset.MaxValue,
                        IsEssential = true
                    };
                    Response.Cookies.Append("ClienteId", cliente.Id.ToString(), cookieOptions);
                    Response.Cookies.Append("ClienteNome", cliente.Nome, cookieOptions);
                    return(RedirectToAction("Index", "Home"));
                }
            }

            ModelState.AddModelError(string.Empty, "Email ou senha inválidos.");
            return(View("Login", dadosLogin));
        }
        public IActionResult Alterar(AlterarVm dadosAlterar)
        {
            string clienteId = Request.Cookies["ClienteId"];

            if (clienteId == null)
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (!ModelState.IsValid)
            {
                return(View("MinhaConta", dadosAlterar));
            }

            Cliente cliente = _context.Clientes.Find(Convert.ToInt32(clienteId));

            if (UtilSenha.ValidarSenha(cliente.Senha, dadosAlterar.SenhaAtual))
            {
                cliente.Cidade   = dadosAlterar.Cidade;
                cliente.Estado   = dadosAlterar.Estado;
                cliente.Telefone = dadosAlterar.Telefone;
                if (!string.IsNullOrWhiteSpace(dadosAlterar.SenhaNova))
                {
                    cliente.Senha = UtilSenha.GerarHashSenha(dadosAlterar.SenhaNova);
                }

                _context.SaveChanges();
            }

            return(RedirectToAction("MinhaConta", dadosAlterar));
        }