Exemple #1
0
        public ActionResult AtualizarConta()
        {
            UsuarioAtualizacao usuarioAtualizacao = new UsuarioAtualizacao();

            usuarioAtualizacao.Nome  = HttpContext.Session.GetString("Nome");
            usuarioAtualizacao.Email = HttpContext.Session.GetString("Email");
            ViewBag.MensagemSucesso  = TempData["MensagemSucesso"] != null ? TempData["MensagemSucesso"].ToString() : null;
            return(View("MinhaConta", usuarioAtualizacao));
        }
Exemple #2
0
        public ActionResult Atualizar(UsuarioAtualizacao usuarioAtualizacao)
        {
            string idUser = HttpContext.Session.GetString("Id");

            if (idUser != null)
            {
                var usuario = _db.Usuarios.SingleOrDefault(u => u.CodUsuario.ToString().Equals(idUser));
                if (usuario != null)
                {
                    if (BCrypt.Net.BCrypt.Verify(usuarioAtualizacao.SenhaAtual, usuario.Senha))
                    {
                        if (!usuario.Email.Equals(usuarioAtualizacao.Email))
                        {
                            var emailsExistentes = _db.Usuarios
                                                   .Where(u => u.Email.Equals(usuarioAtualizacao.Email))
                                                   .Select(u => u.Email)
                                                   .ToList();
                            if (emailsExistentes.Count() > 0)
                            {
                                ViewBag.MensagemErro = "Este e-mail já está sendo utilizado por outra conta.";
                                return(View("MinhaConta", usuarioAtualizacao));
                            }
                        }
                        usuario.Email = usuarioAtualizacao.Email;
                        usuario.Nome  = usuarioAtualizacao.Nome;
                        if (!string.IsNullOrEmpty(usuarioAtualizacao.Senha))
                        {
                            usuario.Senha = BCrypt.Net.BCrypt.HashPassword(usuarioAtualizacao.Senha);
                        }

                        _db.SaveChanges();

                        HttpContext.Session.SetString("Nome", usuario.Nome);
                        HttpContext.Session.SetString("Email", usuario.Email);

                        TempData["MensagemSucesso"] = "Alterações salvas com sucesso.";
                        return(RedirectToAction("AtualizarConta"));
                    }

                    ViewBag.MensagemErro = "Senha atual incorreta.";
                    return(View("MinhaConta", usuarioAtualizacao));
                }
            }
            return(RedirectToAction("Login", "Home"));
        }