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


            var empregado = new Empregado(Guid.NewGuid(), message.Nome, message.Sobrenome, message.Cargo, message.DataAdmissao, message.DataNascimento);

            if (_empregadoRepository.GetByNome(empregado.Nome) != null)
            {
                Bus.RaiseEvent(new DomainNotification(message.MessageType, "O nome do Empregado já foi recebido"));
                return(Task.FromResult(false));
            }


            _empregadoRepository.Add(empregado);

            if (Commit())
            {
                Bus.RaiseEvent(new EmpregadoRegisteredEvent(empregado.Id, empregado.Nome, empregado.Sobrenome, empregado.Cargo, empregado.DataAdmissao, empregado.DataNascimento));
            }


            return(Task.FromResult(true));
        }
Example #2
0
        public IActionResult PostEmpregado(EmpregadoDto empregadoDto)
        {
            try
            {
                bool coordenacaoExiste = _coordenacaoRepository.CoordenacaoExiste(empregadoDto.Coordenacao);

                if (!coordenacaoExiste)
                {
                    return(Ok("Coordenação não existe"));
                }


                if (!_empregadoRepository.MatriculaExiste(empregadoDto.Matricula))
                {
                    var empregado = new Empregado {
                        Id            = _empregadoRepository.ObterId() + 1,
                        Matricula     = empregadoDto.Matricula,
                        Nome          = empregadoDto.Nome,
                        CoordenacaoId = _coordenacaoRepository.ObterCoordenacaoIdPorNome(empregadoDto.Coordenacao),
                        Ativo         = true
                    };
                    _empregadoRepository
                    .Add(empregado);


                    return(Ok($"Empregado matrícula: {empregado.Matricula} criado com sucesso."));
                }
                return(Ok("Matrícula já existe"));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }