예제 #1
0
        public async Task ArmazenarAsync(FuncionarioDto funcionarioDto)
        {
            funcionarioDto = funcionarioDto ?? new FuncionarioDto();

            var funcionario = funcionarioDto.Id == 0 ?
                              CriarUmNovoFuncionario(funcionarioDto) :
                              await _editarUmFuncionario.EditarAsync(funcionarioDto);

            if (NotificacaoDeDominio.HasNotifications)
            {
                return;
            }

            if (!funcionario.Validar())
            {
                await NotificarValidacoesDeDominioAsync(funcionario.ValidationResult);
            }

            await _validadorCpfDaFuncionarioJaExistente.ValidarAsync(funcionario.Cpf, funcionario.Id);

            if (!NotificacaoDeDominio.HasNotifications && funcionario.Id == 0)
            {
                await _funcionarioRepositorio.AdicionarAsync(funcionario);
            }
        }
예제 #2
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);
                }
            }
        }