public Task <bool> Handle(UpdateEmpregadoCommand message, CancellationToken cancellationToken) { if (!message.IsValid()) { NotifyValidationErrors(message); return(Task.FromResult(false)); } var empregado = new Empregado(message.Id, message.Nome, message.Sobrenome, message.Cargo, message.DataAdmissao, message.DataNascimento); var empregadoExiste = _empregadoRepository.GetByNome(empregado.Nome); if (empregadoExiste != null && empregadoExiste.Id != empregado.Id) { if (!empregadoExiste.Equals(empregado)) { Bus.RaiseEvent(new DomainNotification(message.MessageType, "o nome do empregado já foi recebido")); return(Task.FromResult(false)); } } _empregadoRepository.Update(empregado); if (Commit()) { Bus.RaiseEvent(new EmpregadoUpdatedEvent(empregado.Id, empregado.Nome, empregado.Sobrenome, empregado.Cargo, empregado.DataAdmissao, empregado.DataNascimento)); } return(Task.FromResult(true)); }
public IActionResult PutEmpregado(EmpregadoDto empregadoDto) { try { bool coordenacaoExiste = _coordenacaoRepository.CoordenacaoExiste(empregadoDto.Coordenacao); int coordenacaoId = _coordenacaoRepository.ObterCoordenacaoIdPorNome(empregadoDto.Coordenacao); if (!coordenacaoExiste) { return(Ok("Coordenação não existe")); } if (_empregadoRepository.MatriculaExiste(empregadoDto.Matricula)) { var empregado = new Empregado { Id = empregadoDto.Id, Matricula = empregadoDto.Matricula, Nome = empregadoDto.Nome, CoordenacaoId = coordenacaoId, Ativo = true }; _empregadoRepository .Update(empregado); return(Ok($"Empregado matrícula {empregado.Matricula} alterado com sucesso.")); } return(Ok("Matrícula já existe")); } catch (Exception e) { return(BadRequest(e.Message)); } }