Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
            }
        }