public ActionResult Editar(Guid id)
        {
            if (id == Guid.Empty)
            {
                TempData["Erro"] = "Informe o id do usuario";
                return(RedirectToAction("Index"));
            }

            UsuarioViewModel vmUsuario = new UsuarioViewModel();

            using (UsuarioRepositorio _repUsuario = new UsuarioRepositorio())
            {
                vmUsuario = Mapper.Map <UsuarioDomain, UsuarioViewModel>(_repUsuario.BuscarPorID(id));

                if (vmUsuario == null)
                {
                    TempData["Erro"] = "Usuário não encontrado";
                    return(RedirectToAction("Index"));
                }
                else
                {
                    return(View(vmUsuario));
                }
            }
        }
        public ActionResult AlterarSenha(AlterarSenhaViewModel senha)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    ViewBag.Erro = "Dados inválidos. Vereifique!";
                }

                //Obtem as Claims do usuario logado
                var identity = User.Identity as ClaimsIdentity;

                //Pega o valor do Id do usuário
                var id       = identity.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value;
                var telefone = identity.Claims.FirstOrDefault(x => x.Type == "Telefone").Value;
                using (UsuarioRepositorio objRepoUsuario = new UsuarioRepositorio())
                {
                    UsuarioDomain objUsuario = objRepoUsuario.BuscarPorID(new Guid(id));

                    if (senha.SenhaAtual != objUsuario.Senha)
                    {
                        ModelState.AddModelError("SenhaAtual", "Senha incorreta");
                        return(View());
                    }

                    objUsuario.Senha = senha.NovaSenha;
                    objRepoUsuario.Alterar(objUsuario);
                    TempData["Sucesso"] = "Senha Alterada";
                    return(RedirectToAction("Index", "Usuario"));
                }
                return(RedirectToAction("Index", "Usuario"));
            }
            catch (System.Exception ex)
            {
                ViewBag.Erro = "Ocorreu um erro" + ex.Message;
                return(View());
            }
        }
        public ActionResult Deletar(UsuarioViewModel usuario)
        {
            if (usuario.Id == Guid.Empty)
            {
                TempData["Erro"] = "Informe o Id do usuário";
                return(RedirectToAction("Index"));
            }

            using (UsuarioRepositorio _repoUsuario = new UsuarioRepositorio())
            {
                UsuarioViewModel vmUsuario = Mapper.Map <UsuarioDomain, UsuarioViewModel>(_repoUsuario.BuscarPorID(usuario.Id));
                if (vmUsuario == null)
                {
                    TempData["Erro"] = "Usuário não encontrado";
                    return(RedirectToAction("Index"));
                }
                else
                {
                    _repoUsuario.Deletar(Mapper.Map <UsuarioViewModel, UsuarioDomain>(vmUsuario));
                    TempData["Erro"] = "Usuário excluido";
                    return(RedirectToAction("Index"));
                }
            }
        }