Esempio n. 1
0
        public async Task Armazenar(FuncionarioDto dto)
        {
            await ValidarFuncionarioComMesmoNome(dto);

            if (!NotificacaoDeDominio.HasNotifications())
            {
                var funcionario = new Funcionario(dto.Nome, dto.Cpf);
                if (dto.Id > 0)
                {
                    funcionario = await _funcionarioRepositorio.ObterPorIdAsync(dto.Id);

                    funcionario.AlterarNome(dto.Nome);
                    funcionario.AlterarCpf(dto.Cpf);
                }

                funcionario.AlterarDataContratacao(dto.DataContratacao);

                if (funcionario.Validar() && funcionario.Id == 0)
                {
                    await _funcionarioRepositorio.AdicionarAsync(funcionario);
                }
                else
                {
                    await NotificarValidacoesDeDominio(funcionario.ValidationResult);
                }
            }
        }
        public bool Alterar(int id, FuncionarioDTO dto)
        {
            _funcionario = _funcionarioRepository.Get(f => f.Id == id);
            _funcionario.AlterarNome(dto.Nome);
            _funcionario.AlterarCpf(dto.Cpf);
            _funcionario.AlterarDataContratacao(dto.DataContratacao);

            _validador.entidade = _funcionario;
            _validador.ValidarAlteracao();

            if (notificationContext.HasNotifications)
                return false;

            _funcionarioRepository.Update(_funcionario);
            return true;
        }
 public FuncionarioBuilder WithNome(string nome)
 {
     Funcionario.AlterarNome(nome);
     return(this);
 }