public void Atualizar(AtualizarAlunoRequest request) { Usuario.Nome = request.Nome; Usuario.Email = request.Email; Usuario.UserName = request.UserName; Matricula = request.Matricula; }
public async Task <IActionResult> Put([FromBody] AtualizarAlunoRequest request) { AppResponse resposta = await _usuarioServico.AtualizarAluno(request); if (resposta.Sucesso) { return(Ok(resposta)); } return(BadRequest(resposta)); }
public async Task <AppResponse> AtualizarAluno(AtualizarAlunoRequest request) { Aluno aluno = await _uow.Usuarios.ObterAluno(request.Id); if (aluno == null) { return(new AppResponse(false, "Aluno não encontrado.")); } if (string.IsNullOrEmpty(request.Senha)) { aluno.Usuario.AdicionarErro("Informe a nova senha."); } if (string.IsNullOrEmpty(request.SenhaAntiga)) { aluno.Usuario.AdicionarErro("Informe a senha antiga."); } aluno.Atualizar(request); if (!aluno.Usuario.TaValido()) { return(new AppResponse(false, ERRO_ATUALIZAR_ALUNO, aluno.Usuario.ObterErros())); } // vinculando disciplinas no aluno if (request.Disciplinas != null) { List <Disciplina> disciplinasInformadas = await _uow.Disciplinas.ObterTodas(request.Disciplinas); if (disciplinasInformadas != null) { foreach (Disciplina disciplinaInformada in disciplinasInformadas) { if (!aluno.Disciplinas.Any(e => e.Id == disciplinaInformada.Id)) { disciplinaInformada.AdicionaAluno(aluno); } } var idsRemover = aluno.Disciplinas.Select(e => e.Id).ToList().Except(request.Disciplinas).ToList(); List <Disciplina> disciplinasRemover = aluno.Disciplinas.Where(e => idsRemover.Contains(e.Id)).ToList(); foreach (var disciplinaInformada in disciplinasRemover) { disciplinaInformada.RemoverAluno(aluno); } } } await _uow.CommitAsync(); IdentityResult result = await _userManager.ChangePasswordAsync(aluno.Usuario, request.SenhaAntiga, request.Senha); if (!result.Succeeded) { return(new AppResponse(MSG_ERRO_UPDATE_ALUNO, false, IdentityHelper.ObterErros(result))); } return(new AppResponse(true, MSG_UPDATE_ALUNO_SUCESSO, new AlunoComDisciplinaDTO(aluno))); }