public CatalogParts(int n) { InitializeComponent(); //инициализация категорий запчастей и присвоение из БД listCategoryParts = new List <CategoryPart>(); listCategoryParts = connectDB.GetCategoryParts(n); //инициализация Под категорий запчастей и присвоение из БД listSubParts = new List <SubCategoryParts>(); listSubParts = connectDB.GetSubCategoryParts(); //инициализация запчастей и присвоение из БД listRepairsParts = new List <RepairPart>(); listRepairsParts = connectDB.GetRepairsParts(); TreeNode categoryNodes = new TreeNode(); TreeNode subCategoryNodes = new TreeNode(); foreach (var item in listCategoryParts) { categoryNodes = treeView1.Nodes.Add(item.id.ToString(), item.categoryName); foreach (var subItem in listSubParts) { if (item.id == subItem.categoryId) { subCategoryNodes = categoryNodes.Nodes.Add(subItem.id.ToString(), subItem.nameSubCategoryPart); } foreach (var repairItem in listRepairsParts) { if (repairItem.subCategoryId == subItem.id && item.id == subItem.categoryId) { subCategoryNodes.Nodes.Add(repairItem.id.ToString(), repairItem.nameRepairPart); } } } } treeView1.DoubleClick += TreeView1_DoubleClick; }
/// <summary> /// Парсит ссылки на каждую запчасть /// </summary> /// public void ParsLinkRepairs() { listPartsDiscription = new List <Part>(); test = new List <string>(); List <MissingPart> listMissingParts = new List <MissingPart>(); List <GoodsPart> goodsParts = new List <GoodsPart>(); int id = 0; int idPrice = 0; int idNoPrice = 0; foreach (var part in connectDB.GetRepairsParts()) { //string response = GetPage("https://www.avtoall.ru/catalog/paz-20/avtobusy-36/paz_672m-393/obshiiy_vid_dvigatelya-43/"); string response = GetPage(part.repairPartLink); HtmlParser htmlParser = new HtmlParser(); var doc = htmlParser.ParseDocument(response); foreach (var item in doc.DocumentElement.QuerySelectorAll("*body")) { id++; var articlePart = item.QuerySelector(".part .number"); var countGoods = item.QuerySelector(".part .count>span"); var nameGoods = item.QuerySelector(".color-block>h1"); var linkPictureScheme = item.QuerySelector("#picture_img").GetAttribute("src"); foreach (var goods in doc.DocumentElement.QuerySelectorAll(".item")) { idPrice++; var linkImagePart = goods.QuerySelector(".image>a>img").GetAttribute("src"); var namePart = goods.QuerySelector(".item-name"); var price = goods.QuerySelector(".price-internet"); goodsParts.Add(new GoodsPart { id = idPrice, namePart = namePart.TextContent, linkImagePart = linkImagePart == null ? "\noImage.gif" : DownloadFile(linkImagePart, "partImage", namePart.TextContent), price = price == null ? "" : price.TextContent, parentId = id }); } foreach (var misPart in doc.DocumentElement.QuerySelectorAll(".parts.not-price .part")) { idNoPrice++; var article = misPart.QuerySelector(".part>.number"); var namePart = misPart.QuerySelector(".part>.name"); var count = misPart.QuerySelector(".part>.count"); listMissingParts.Add(new MissingPart { id = idNoPrice, namePart = namePart.TextContent, articlePart = article.TextContent, productInStock = count.TextContent, parentId = id }); } listPartsDiscription.Add(new Part { id = id, linkPictureScheme = DownloadFile(linkPictureScheme, "schemaImage", nameGoods.TextContent), missingParts = listMissingParts, countGoods = countGoods == null ? "" : countGoods.TextContent, articlePart = articlePart.TextContent, goodsParts = goodsParts, nameGoods = nameGoods.TextContent }); } } parsEnd.Invoke("End ParsLinkRepairs"); }