Example #1
0
        public Task <bool> Handle(AtualizarAlunoCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                NotifyValidationErrors(message);
                return(Task.FromResult(false));
            }

            var aluno       = new Aluno(message.Id, message.IdUsuario, message.Nome, message.Matricula);
            var existeAluno = _alunoRepository.GetById(aluno.Id);

            if (existeAluno != null && existeAluno.Id != aluno.Id)
            {
                if (!existeAluno.Equals(aluno))
                {
                    Bus.RaiseEvent(new DomainNotification(message.MessageType, "Aluno não encontrado na base de dados."));
                    return(Task.FromResult(false));
                }
            }

            _alunoRepository.Update(aluno);

            if (Commit())
            {
                Bus.RaiseEvent(new AlunoAtualizadoEvent(aluno.Id, aluno.IdUsuario, aluno.Nome, aluno.Matricula));
            }

            return(Task.FromResult(true));
        }
 public async Task <IActionResult> PutAsync(int id, [FromBody] AtualizarAlunoCommand command)
 {
     if (command == null || command.AlunoId != id)
     {
         return(BadRequest());
     }
     return(Ok(await Mediator.Send(command)));
 }