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); }