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;
        }
Beispiel #2
0
        /// <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");
        }