예제 #1
0
        public async Task Atualizar(Funcionario funcionario)
        {
            var transaction = _repositoryWrite.IniciarTransacao();

            try
            {
                Funcionario baseFuncionario = await _repositoryRead.ObterPorId(transaction, funcionario.Id);

                baseFuncionario.Atualizar(funcionario.Nome, funcionario.DataNascimento, funcionario.Email, funcionario.Matricula, funcionario.Cargo);
                baseFuncionario.AtualizarTelefones(funcionario.Telefones);
                baseFuncionario.AtualizarEnderecoComercial(funcionario.EnderecoComercial);
                baseFuncionario.AtualizarEnderecoResidencial(funcionario.EnderecoResidencial);
                var result = await _repositoryWrite.Atualizar(baseFuncionario, transaction);

                if (!result)
                {
                    _repositoryWrite.CancelarTransacao(transaction);
                    // return result;
                }
                if (funcionario.Telefones != null && funcionario.Telefones.Any())
                {
                    await TratarTelefones(funcionario.Telefones, transaction);
                }

                if (funcionario.EnderecoResidencial != null && !string.IsNullOrEmpty(funcionario.EnderecoResidencial.Rua))
                {
                    await TratarEndereco(funcionario.EnderecoResidencial, transaction);
                }

                if (funcionario.EnderecoComercial != null && !string.IsNullOrEmpty(funcionario.EnderecoComercial.Rua))
                {
                    await TratarEndereco(funcionario.EnderecoComercial, transaction);
                }
                _repositoryWrite.CompletarTransacao(transaction);
                //return result;
            }
            catch (Exception ex)
            {
                _repositoryWrite.CancelarTransacao(transaction);
                _logger.LogError(ex, "Erro ao atualizar");
                throw;
            }
        }
예제 #2
0
        public async Task <bool> Atualizar(Funcionario funcionario, string currentUserId)
        {
            try
            {
                Funcionario baseFuncionario = await _repositoryRead.ObterPorId(funcionario.Id);

                baseFuncionario.Atualizar(funcionario.Nome, funcionario.DataNascimento, funcionario.Email, funcionario.Matricula, funcionario.Cargo);
                baseFuncionario.AtualizarEnderecoComercial(funcionario.EnderecoComercial);
                baseFuncionario.AtualizarEnderecoResidencial(funcionario.EnderecoResidencial);
                var result = await _repositoryWrite.Atualizar(funcionario);

                return(result);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Erro ao atualizar");
                return(false);
            }
        }