예제 #1
0
        public static TerretoryOkrug getChildDepartments(string url, TerretoryOkrug t)
        {
            List <Department> dep = new List <Department>();
            var u = "https://www.cvk.gov.ua/pls/vp2019/" + url;

            var web = new HtmlWeb();

            var      htmlDocument = web.Load(u);
            HtmlNode nodeTBody    = htmlDocument.DocumentNode.SelectSingleNode("//table");

            foreach (var nodeTr in nodeTBody.Descendants("tr"))
            {
                var nodeTds = nodeTr.Descendants("td");
                if (nodeTds.Count() > 0)
                {
                    dep.Add(new Department(
                                nodeTds.ElementAt(0).SelectSingleNode("b").InnerText,
                                Convert.ToInt32(nodeTds.ElementAt(1).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(2).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(3).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(4).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(5).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(6).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(7).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(8).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(9).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(10).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(11).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(12).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(13).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(14).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(15).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(16).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(17).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(18).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(19).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(20).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(21).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(22).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(23).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(24).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(25).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(26).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(27).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(28).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(29).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(30).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(31).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(32).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(33).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(34).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(35).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(36).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(37).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(38).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(39).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(40).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(41).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(42).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(43).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(44).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(45).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(46).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(47).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(48).InnerText),
                                Convert.ToInt32(nodeTds.ElementAt(49).InnerText),
                                nodeTds.ElementAt(50).InnerText.Replace("\n", string.Empty)
                                ));
                }
            }
            return(new TerretoryOkrug(t.Id, t.Total, t.Processed, t.Description, dep));
        }
예제 #2
0
        public static List <Region> getHtmlHref()
        {
            var url = "https://www.cvk.gov.ua/pls/vp2019/wp335pt001f01=719.html";

            List <Region> regions = new List <Region>();

            var web = new HtmlWeb();

            web.OverrideEncoding = Encoding.GetEncoding(1251);
            var htmlDocument = web.Load(url);

            HtmlNode nodeTBody = htmlDocument.DocumentNode.SelectSingleNode("//table");

            var i = -1;

            List <TerretoryOkrug> okrugs = new List <TerretoryOkrug>();
            Region region = null;

            foreach (var nodeTr in nodeTBody.Descendants("tr"))
            {
                var nodeTds = nodeTr.Descendants("td");
                if (nodeTds.Count() == 1)
                {
                    if (i != -1)
                    {
                        regions.Add(new Region(region.RegionName, region.Count, okrugs));
                        okrugs = new List <TerretoryOkrug>();
                        region = null;

                        //Console.WriteLine(region.RegionName + regions.ElementAt(i).okrugs.Count());
                        //foreach (TerretoryOkrug ok in regions.ElementAt(i).okrugs)
                        //{
                        //    Console.WriteLine(ok.Id);
                        //}
                        //Console.WriteLine("-------------------------------");
                    }
                    i++;
                    string temp = nodeTds.ElementAt(0).InnerText;

                    if (temp != "\n")
                    {
                        string[] regionAndCount = temp.Split(new string[] { " - " }, StringSplitOptions.RemoveEmptyEntries);
                        region = new Region(regionAndCount[0], Convert.ToInt32(regionAndCount[1]));
                    }
                    else
                    {
                        region = new Region("Закордонний вибочий округ", 1);
                    }
                }

                if (nodeTds.Count() > 1)
                {
                    TerretoryOkrug terretoryOkrug = new TerretoryOkrug(
                        nodeTds.ElementAt(0).InnerText.Replace("\n", string.Empty),
                        Convert.ToInt32(nodeTds.ElementAt(1).SelectSingleNode("a").InnerText),
                        Convert.ToInt32(nodeTds.ElementAt(2).InnerText),
                        nodeTds.ElementAt(3).InnerText.Replace("\n", string.Empty)
                        );
                    okrugs.Add(getChildDepartments(nodeTds.ElementAt(1).SelectSingleNode("a").GetAttributeValue("href", ""), terretoryOkrug));
                }
            }

            regions.Add(new Region(region.RegionName, region.Count, okrugs));
            //Console.WriteLine(region.RegionName + regions.ElementAt(i).okrugs.Count());

            return(regions);
        }