예제 #1
0
 public void Atualizar(AtualizarAlunoRequest request)
 {
     Usuario.Nome     = request.Nome;
     Usuario.Email    = request.Email;
     Usuario.UserName = request.UserName;
     Matricula        = request.Matricula;
 }
예제 #2
0
        public async Task <IActionResult> Put([FromBody] AtualizarAlunoRequest request)
        {
            AppResponse resposta = await _usuarioServico.AtualizarAluno(request);

            if (resposta.Sucesso)
            {
                return(Ok(resposta));
            }

            return(BadRequest(resposta));
        }
예제 #3
0
        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)));
        }