public ServiceResult EditarConta(int idFuncionario, EditarTrabalhadorDTO model)
        {
            _logger.LogDebug("A executar [AdministradorBusiness -> EditarConta]");
            if (string.IsNullOrWhiteSpace(model.Nome))
            {
                throw new ArgumentNullException("Nome", "Campo não poder ser nulo!");
            }
            if (string.IsNullOrWhiteSpace(model.Password))
            {
                throw new ArgumentNullException("Password", "Campo não poder ser nulo!");
            }

            if (string.IsNullOrWhiteSpace(model.NovaPassword))
            {
                throw new ArgumentNullException("NovaPassword", "Campo não poder ser nulo!");
            }

            IList <int>   erros         = new List <int>();
            Administrador administrador = _administradorDAO.GetContaIdFuncionario(idFuncionario);

            if (administrador == null)
            {
                _logger.LogWarning($"Não existe nenhum Administrador com o IdFuncionario {idFuncionario}!");
                erros.Add((int)ErrosEnumeration.ContaNaoExiste);
            }
            else
            {
                if (!ValidaNome(model.Nome))
                {
                    _logger.LogDebug($"O Nome {model.Nome} é inválido.");
                    erros.Add((int)ErrosEnumeration.NomeInvalido);
                }
                if (!ValidaPassword(model.NovaPassword))
                {
                    _logger.LogDebug("A Password introduzida é inválido.");
                    erros.Add((int)ErrosEnumeration.PasswordInvalida);
                }
                if (!_hashPasswordService.HashPassword(model.Password).Equals(administrador.Password))
                {
                    _logger.LogDebug("As Passwords não coincidem.");
                    erros.Add((int)ErrosEnumeration.PasswordsNaoCorrespondem);
                }


                if (!erros.Any())
                {
                    Administrador administradorEditado = _mapper.Map <Administrador>(model);
                    administradorEditado.IdFuncionario  = administrador.IdFuncionario;
                    administradorEditado.NumFuncionario = administrador.NumFuncionario;
                    administradorEditado.Password       = _hashPasswordService.HashPassword(model.NovaPassword);
                    _administradorDAO.EditarConta(administradorEditado);
                }
            }

            return(new ServiceResult {
                Erros = new ErrosDTO {
                    Erros = erros
                }, Sucesso = !erros.Any()
            });
        }