public List <GetRespuestaConsultaHacienda> EjecutarProceso(IEnumerable <string> documentosAProcesar)
        {
            //ejecuta la llamada al idp
            var tokenCancelacionRefrescamiento = new CancellationTokenSource();

            _idpConector.ConsultarIdpPorToken(tokenCancelacionRefrescamiento.Token);
            var    resultadosLista = new List <GetRespuestaConsultaHacienda>();
            object blockObject     = new object();

            Parallel.ForEach(documentosAProcesar, clave =>
            {
                _conectorHacienda.TokenSeguridad = _idpConector.TokenInfo.access_token;
                var resultadoAux = _conectorHacienda.ConsultarDocumentoEnHacienda(clave);
                lock (blockObject)
                {
                    resultadosLista.Add(resultadoAux);
                }
            });
            tokenCancelacionRefrescamiento.Cancel();
            _idpConector.CerrarSesionIdp();
            return(resultadosLista);
        }
        public List <PostRespuestaEnvioHacienda> EjecutarProceso(IEnumerable <DocumentoDto> documentosAProcesar)
        {
            //ejecuta la llamada al idp
            var tokenCancelacionRefrescamiento = new CancellationTokenSource();

            _idpConector.ConsultarIdpPorToken(tokenCancelacionRefrescamiento.Token);
            var    resultadosLista = new List <PostRespuestaEnvioHacienda>();
            object blockObject     = new object();

            Parallel.ForEach(documentosAProcesar, CrearOpcionesParalelismo(), doc =>
            {
                _conectorHacienda.TokenSeguridad = _idpConector.TokenInfo.access_token;
                var resultadoAux = _conectorHacienda.EnviarDocumentoAHacienda(doc);
                lock (blockObject)
                {
                    resultadosLista.Add(resultadoAux);
                }
            });
            tokenCancelacionRefrescamiento.Cancel();
            _idpConector.CerrarSesionIdp();
            return(resultadosLista);
        }