public void UpdateProductData(ArrowProduct ArrowProduct) { try { LabelLog("Update product data !!"); using (SqlConnection sqlConnection = new SqlConnection(connection)) { sqlConnection.Open(); SqlCommand sqlCommand = new SqlCommand("update [dbo].[tbl_Arrow_Product] set itemtitle=@itemtitle,Productdescription=@Productdescription,MPN=@MPN,Manufacturename=@Manufacturename,productcategory=@productcategory,UOM=@UOM,price=@price,imageurl=@imageurl,category=@category,techspec=@techspec where Productid=@id", sqlConnection); sqlCommand.CommandType = CommandType.Text; sqlCommand.Parameters.AddWithValue("@itemtitle", (ArrowProduct.itemtitle == null) ? "" :ReplaceString.PutString(ArrowProduct.itemtitle)); sqlCommand.Parameters.AddWithValue("@Productdescription", (ArrowProduct.Productdescription == null) ? "" : ReplaceString.PutString(ArrowProduct.Productdescription)); sqlCommand.Parameters.AddWithValue("@MPN", (ArrowProduct.MPN == null) ? "" : ReplaceString.PutString(ArrowProduct.MPN)); sqlCommand.Parameters.AddWithValue("@Manufacturename", (ArrowProduct.Manufacturename == null) ? "" : ReplaceString.PutString(ArrowProduct.Manufacturename)); sqlCommand.Parameters.AddWithValue("@productcategory", (ArrowProduct.productcategory == null) ? "" : ReplaceString.PutString(ArrowProduct.productcategory)); sqlCommand.Parameters.AddWithValue("@UOM", (ArrowProduct.UOM == null) ? "" : ReplaceString.PutString(ArrowProduct.UOM)); sqlCommand.Parameters.AddWithValue("@price", (ArrowProduct.price == null) ? "" : ReplaceString.PutString(ArrowProduct.price)); sqlCommand.Parameters.AddWithValue("@imageurl", (ArrowProduct.imageurl == null) ? "" : ReplaceString.PutString(ArrowProduct.imageurl)); sqlCommand.Parameters.AddWithValue("@category", (ArrowProduct.category == null) ? "" : ReplaceString.PutString(ArrowProduct.category)); sqlCommand.Parameters.AddWithValue("@techspec", (ArrowProduct.techspec == null) ? "" : ReplaceString.PutString(ArrowProduct.techspec)); //sqlCommand.Parameters.AddWithValue("@ProductURL", SourceLink); sqlCommand.Parameters.AddWithValue("@id", sourceid); sqlCommand.ExecuteNonQuery(); } } catch (Exception ex) { LabelLog("updateing product data failed!!"); } }
private void ProcessArrowHTML() { //timer.Stop(); ArrowProduct = new ArrowProduct(); breadcrum = new StringBuilder(); try { DownloadedString = fbrowser.DocumentSource.ToString(); h1 = new HtmlAgilityPack.HtmlDocument(); h1.LoadHtml(DownloadedString); try { ArrowProduct.itemtitle = h1.DocumentNode.SelectSingleNode("//i[@class='Product-Summary-SubHeading-ProductLine']").InnerText.ToString().Replace("\n", "").Trim(); } catch { ArrowProduct.itemtitle = ""; } try { ArrowProduct.Productdescription = h1.DocumentNode.SelectNodes("//p[@class='Product-Summary-Details']")[2].InnerText.ToString().Replace("\n", "").Trim(); } catch { ArrowProduct.Productdescription = ""; } try { ArrowProduct.Manufacturename = h1.DocumentNode.SelectNodes("//p[@class='Product-Summary-Details']")[0].InnerText.ToString().Replace("\n", "").Trim(); } catch { ArrowProduct.Manufacturename = ""; } try { ArrowProduct.MPN = h1.DocumentNode.SelectSingleNode("//span[@class='product-summary-name--Original']").InnerText.ToString().Replace("\n", "").Trim(); } catch { } try { ArrowProduct.productcategory = h1.DocumentNode.SelectNodes("//p[@class='Product-Summary-Details']")[1].InnerText.ToString().Replace("\n", "").Trim(); } catch { ArrowProduct.productcategory = ""; } try { ArrowProduct.UOM = h1.DocumentNode.SelectSingleNode("//span[@class='BuyingOptions-caption BuyingOptions-total-priceFor']").InnerText.ToString().Trim().Replace("\n", "").Trim(); } catch { ArrowProduct.UOM = ""; } try { ArrowProduct.price = h1.DocumentNode.SelectSingleNode("//span[@class='BuyingOptions-total-price ng-star-inserted']").InnerText.ToString().Replace("\n", "").Trim(); } catch { ArrowProduct.price = ""; } try { ArrowProduct.imageurl = "https:" + h1.DocumentNode.SelectSingleNode("//img[@class='Product-Summary-Image']").Attributes["src"].Value.ToString().Replace("\n", "").Trim(); } catch { try { ArrowProduct.imageurl = h1.DocumentNode.SelectNodes("//a[@class='Product-Summary-ImageCarousel-slide slick-slide slick-current slick-active is-active ng-star-inserted']").Select(s => "https:" + s.Attributes["data-image"].Value).Aggregate((a, b) => a + " | " + b).ToString().Replace("\n", "").Trim(); } catch { try { ArrowProduct.imageurl = "https:" + h1.DocumentNode.SelectSingleNode("//img[@class='PDPImageModal-image ng-star-inserted']").Attributes["src"].Value.ToString(); } catch { ArrowProduct.imageurl = ""; } } } try { HtmlNodeCollection htmlNodeCollection = h1.DocumentNode.SelectNodes("//li[@class='Breadcrumb-item ng-star-inserted']"); foreach (HtmlNode item in (IEnumerable <HtmlNode>)htmlNodeCollection) { breadcrum.Append(item.InnerText.ToString().Trim() + " | "); } ArrowProduct.category = breadcrum.ToString().Replace("\n", "").Trim(); } catch { ArrowProduct.category = ""; } try { spec = new StringBuilder(); try { HtmlNodeCollection htmlNodeCollection2 = h1.DocumentNode.SelectNodes("//tr[@class='row ng-star-inserted']"); foreach (HtmlNode item2 in (IEnumerable <HtmlNode>)htmlNodeCollection2) { h2 = new HtmlAgilityPack.HtmlDocument(); h2.LoadHtml(item2.InnerHtml.ToString()); HtmlNodeCollection htmlNodeCollection3 = h2.DocumentNode.SelectNodes("//td"); try { spec.Append(htmlNodeCollection3[0].InnerText.ToString().Trim() + " : " + htmlNodeCollection3[1].InnerText.ToString().Trim() + " | "); } catch { } } } catch { } try { HtmlNodeCollection htmlNodeCollection4 = h1.DocumentNode.SelectNodes("//tr[@class='row SimpleAccordion-toggle ng-star-inserted']"); foreach (HtmlNode item2 in (IEnumerable <HtmlNode>)htmlNodeCollection4) { h2 = new HtmlAgilityPack.HtmlDocument(); h2.LoadHtml(item2.InnerHtml.ToString()); HtmlNodeCollection htmlNodeCollection5 = h2.DocumentNode.SelectNodes("//td"); try { spec.Append(htmlNodeCollection5[0].InnerText.ToString().Trim() + " : " + htmlNodeCollection5[1].InnerText.ToString().Trim() + " | "); } catch { } } } catch { } ArrowProduct.techspec = spec.ToString().Replace("\n", "").Trim(); } catch { ArrowProduct.techspec = ""; } } catch (Exception) { } finally { if (string.IsNullOrEmpty(DownloadedString)) { ArrowProduct.itemtitle = "404 Error"; UpdateProductData(ArrowProduct); } else { UpdateProductData(ArrowProduct); } breadcrum = null; ArrowProduct = null; h2 = null; h1 = null; spec = null; num++; DownloadedString = string.Empty; //ProcessArrowLinkAsync(); } }