Пример #1
0
        public IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult)
        {
            var inputModel = (In)input;

            siteParserResult.Prop1 = "WorkUnit_1_B set Prop1";
            return(new SiteBModelB());
        }
Пример #2
0
        public IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult)
        {
            var serviceA = serviceProvider.GetServiceA();

            siteParserResult.Prop1 = "WorkUnit_1_A set Prop1; " + serviceA.ExecuteServiceA();

            return(new SiteAModelA());
        }
Пример #3
0
        public override IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult)
        {
            var serviceB = serviceProvider.GetServiceB();

            var e = (ParserExecutorResult)siteParserResult;

            e.Zzz = 42;

            siteParserResult.Prop2 = "WorkUnit_2_A set Prop2; " + serviceB.ExecuteServiceB();

            return(new SiteAModelB());
        }
Пример #4
0
        public IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult)
        {
            var inModel = (Input)input;

            var uri    = $"http://911auto.com.ua/search/{inModel.Id}";
            var result = httpClient.GetAsync(uri).Result;

            if (result.StatusCode == HttpStatusCode.OK)
            {
                var html = result.Content.ReadAsStringAsync().Result;
                return(new A0httpResponse {
                    Html = html
                });
            }
            siteParserResult.Exception = "Get Request Status is Not 200OK";
            return(null);
        }
Пример #5
0
        public IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult)
        {
            var htmlDoc        = new HtmlDocument(); // use DI to inject new instance
            var a0httpResponse = (A0httpResponse)input;

            htmlDoc.LoadHtml(a0httpResponse.Html);

            var productHeader = htmlDoc.DocumentNode.SelectSingleNode("//div[@id='product_list']");
            var name          = productHeader.SelectSingleNode("//table/tr[@class='hl']/td/a")?.InnerText; // not found
            var site911Result = (Site911Result)siteParserResult;

            site911Result.ModelName = name;

            var script = htmlDoc.DocumentNode.SelectSingleNode("//script[@type='text/javascript']//text()[contains(., 'zakaz_blk_svc')]");

            return(new B0parseHtmlResult
            {
                QueryString = GetQuery(script.InnerText)
            });
        }
Пример #6
0
        public IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult)
        {
            var b0parseHtmlResult = (B0parseHtmlResult)input;

            var body = new FormUrlEncodedContent(new[] {
                new KeyValuePair <string, string>("svc", "1"),
                new KeyValuePair <string, string>("q", b0parseHtmlResult.QueryString)
            });

            var result = httpClient.PostAsync("https://911auto.com.ua", body).Result;

            if (result.StatusCode == HttpStatusCode.OK)
            {
                var html = result.Content.ReadAsStringAsync().Result;
                return(new C0httpResponse {
                    Html = html
                });
            }
            siteParserResult.Exception = "Get Request Status is Not 200OK";
            return(null);
        }
        public IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult)
        {
            var htmlDoc        = new HtmlDocument();
            var c0httpResponse = (C0httpResponse)input;

            htmlDoc.LoadHtml(c0httpResponse.Html);

            int i     = -1;
            var table = htmlDoc.DocumentNode.SelectNodes("//table/tr")
                        .Skip(1)
                        .Select(n => new TableRow {
                Price = n.SelectSingleNode($"//td[@id='zpuah{++i}']").InnerText,
                Days  = n.SelectSingleNode($"//td[@id='zdep{i}']").InnerText
            }).ToList();

            var x = (Site911Result)siteParserResult;

            x.Table = table;

            return(null);
        }
Пример #8
0
 public IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult)
 {
     throw new Exception("Exception in work unit");
 }
Пример #9
0
 public IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult)
 {
     return(workUnit);
 }
Пример #10
0
 public abstract IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult);