public IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult) { var inputModel = (In)input; siteParserResult.Prop1 = "WorkUnit_1_B set Prop1"; return(new SiteBModelB()); }
public IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult) { var serviceA = serviceProvider.GetServiceA(); siteParserResult.Prop1 = "WorkUnit_1_A set Prop1; " + serviceA.ExecuteServiceA(); return(new SiteAModelA()); }
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()); }
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); }
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) }); }
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); }
public IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult) { throw new Exception("Exception in work unit"); }
public IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult) { return(workUnit); }
public abstract IWorkUnitModel Execute(IWorkUnitModel input, ref ParserExecutorResultBase siteParserResult);