public async Task <IActionResult> EditarAluno(EditarAlunoViewModel editarAlunoViewModel)
        {
            var idDoUsuario = TempData["idDoUsuario"] as string;

            editarAlunoViewModel.IdDoAluno  = TempData["idDoAluno"] as int?;
            editarAlunoViewModel.Role       = TempData["Role"] as string;
            editarAlunoViewModel.IdDoCurso  = (int)TempData["CursoCoordenador"];
            editarAlunoViewModel.IdDaPessoa = (int)TempData["IdDaPessoa"];
            var cpfDaPessoa   = TempData["CpfDaPessoa"] as string;
            var emailDaPessoa = TempData["EmailDaPessoa"] as string;

            TempData.Keep();



            if (ModelState.IsValid)
            {
                if (await _pessoaAppService.PessoaExisteCpfAsync(cpfDaPessoa, editarAlunoViewModel.Pessoa.CpfDaPessoa))
                {
                    ModelState.AddModelError("Pessoa.CpfDaPessoa", "Cpf já esta em uso");
                    return(View(editarAlunoViewModel));
                }

                if (await _pessoaAppService.PessoaExisteEmailAsync(emailDaPessoa, editarAlunoViewModel.Pessoa.EmailDaPessoa))
                {
                    ModelState.AddModelError("Pessoa.EmailDaPessoa", "E-Mail já esta em uso");
                    return(View(editarAlunoViewModel));
                }

                editarAlunoViewModel.Pessoa.IdDaPessoa = editarAlunoViewModel.IdDaPessoa;
                var pessoa = _mapper.Map <PessoaViewModel, Pessoa>(editarAlunoViewModel.Pessoa);
                _pessoaAppService.AtualizarAsync(pessoa);

                var usuario = await _userManager.FindByIdAsync(idDoUsuario);

                if (usuario != null)
                {
                    var userChangePassword = await _userManager.ChangePasswordAsync(usuario, usuario.UserName, editarAlunoViewModel.Pessoa.CpfDaPessoa);

                    if (userChangePassword.Succeeded)
                    {
                        usuario.UserName = editarAlunoViewModel.Pessoa.CpfDaPessoa;
                        usuario.Email    = editarAlunoViewModel.Pessoa.EmailDaPessoa;
                        var resultadoDaAtualizacaoDoUsuario = await _userManager.UpdateAsync(usuario);

                        if (resultadoDaAtualizacaoDoUsuario.Succeeded)
                        {
                            var aluno = _mapper.Map <EditarAlunoViewModel, Aluno>(editarAlunoViewModel);
                            _alunoAppService.AtualizarAsync(aluno);
                            return(Redirect(
                                       $"VisualizarAluno?IdDoAluno={editarAlunoViewModel.IdDoAluno}&IdDoCurso={editarAlunoViewModel.IdDoCurso}"));
                        }
                    }
                }
            }
            return(View(editarAlunoViewModel));
        }