Beispiel #1
0
        internal String GetContentHtml(String url)
        {
            var htmlResult = String.Empty;
            //var phantomJS = new PhantomJS();
            var phantomJS = new PhantomJS();

            try
            {
                phantomJS.OutputReceived += (sender, e) =>
                {
                    //TODO: Implementar
                };
                phantomJS.ErrorReceived += (sender, e) =>
                {
                    //TODO: Implementar
                    AppLog.LogMessage("phantomjserror", e.Data);
                };

                using (var outMemoryStream = new MemoryStream())
                {
                    //Cargamos el contenido de la página
                    //phantomJS.RunScript(String.Format(KScriptJS, this.UrlBase), null, null, outMemoryStream);

                    //Cargamos el contenido de la página
                    var scriptJS = @"
		            var system = require('system');
		            var page = require('webpage').create();
		            page.open('"         + url + @"', function() {
			            system.stdout.writeLine(page.content);
			            phantom.exit();
		            });"        ;
                    phantomJS.RunScript(scriptJS, null, null, outMemoryStream);

                    outMemoryStream.Position = 0;
                    using (var streamReader = new StreamReader(outMemoryStream))
                    {
                        htmlResult = streamReader.ReadToEnd();
                        streamReader.Close();
                    }

                    //Traceamos los mensajes de html retornados
                    AppLog.LogMessage("htmlresult", htmlResult);

                    //Liberamos los recursos utilizados en memoria
                    outMemoryStream.Close();
                }
            }
            catch (Exception ex)
            {
                //TODO: Implementar mecanismo de log
                //AppLog.LogMessage("phantomjsexception", BusquedaVehiculos.Infra.Serialization.Serializer.Serialize(ex));
                //AppLog.LogMessage("phantomjsexception", ex.ToMessageAndCompleteStackTrace());
            }
            finally
            {
                //Nos aseguramos que phantomjs.exe esté detenido
                phantomJS.Abort();
            }
            return(htmlResult);
        }
Beispiel #2
0
        public BusquedaResponseDTO BuscarVehiculos(BusquedaRequestDTO request)
        {
            var retorno = new BusquedaResponseDTO()
            {
                CodProvider = this.CodProvider
            };

            try
            {
                int?currentPage = null;
                int?pagesCount  = null;

                //Procesamos el request
                while ((!currentPage.HasValue && !pagesCount.HasValue) || (currentPage.Value < pagesCount.Value))
                {
                    //Procesamos la solicitud paginada
                    var result = this.ProcessUrl(request, ref currentPage, ref pagesCount);
                    retorno.Items.AddRange(result);

                    //Aumentamos de página si no es ambiente de test
                    if (ParametrosAppSetting.ConfigAmbienteTest == "N")
                    {
                        currentPage++;
                    }
                    else
                    {
                        //Cortamos el ciclo
                        currentPage = 1;
                        pagesCount  = 1;
                    }
                }
            }
            catch (Exception ex)
            {
                //AppLog.LogMessage("ProviderBaseSync_BuscarVehiculos_exception", BusquedaVehiculos.Infra.Serialization.Serializer.Serialize(ex));
                AppLog.LogMessage("ProviderBaseSync_BuscarVehiculos_exception", ex.Message);
            }
            return(retorno);
        }