Ejemplo n.º 1
0
        private void scraperMeetingsBtn_Click(object sender, EventArgs e)
        {
            Scraper.Scraper scrapper = new Scraper.Scraper();
            scrapper.ScrapeDataSitting("https://www.sejm.gov.pl/sejm9.nsf/agent.xsp?symbol=posglos&NrKadencji=9");


            foreach (var meet in scrapper.Meetings)
            {
                Scraper.Scraper s2 = new Scraper.Scraper();
                s2.ScrapeDataOfDay(meet.DetailsLink);
                foreach (var meet2 in s2.Meetings)
                {
                    Meeting meeting2 = new Meeting();
                    meeting2.TimeOfVote  = meet2.TimeOfVote;
                    meeting2.VotingTopic = meet2.VotingTopic;
                    meeting2.VotingLink  = meet2.DetailsLink;

                    meeting2.NrMeetings = meet.NrMeetings;
                    meeting2.DateOfVote = meet.DateOfVote;


                    SrapedMeetings.Add(meeting2);

                    //listEnvoysBox.DataSource = s2.Meetings;
                    //listEnvoysBox.DisplayMember = "FullName";
                }
            }


            foreach (var meeting in SrapedMeetings.Take(5))
            {
                Scraper.Scraper scraperParties = new Scraper.Scraper();
                scraperParties.ScrapeDataClubLink(meeting.VotingLink);

                foreach (var link in scraperParties.Links)
                {
                    Scraper.Scraper scrapevoting = new Scraper.Scraper();
                    scrapevoting.ScrapeDataOfVote(link.Link);

                    foreach (var votingItem in scrapevoting.VotingList)
                    {
                        Deputy deputy = Deputies.Where(x => x.Name == votingItem.Name && x.PoliticalParty == link.Party)
                                        .FirstOrDefault();

                        if (null == deputy)
                        {
                            deputy = new Deputy()
                            {
                                Name = votingItem.Name, PoliticalParty = link.Party
                            };
                            Deputies.Add(deputy);
                        }

                        Vote vote = new Vote()
                        {
                            Meeting  = meeting,
                            Deputy   = deputy,
                            VoteType = votingItem.Vote
                        };

                        Votes.Add(vote);
                    }
                }
            }

            using (SqliteDbContext context = new SqliteDbContext())
            {
                context.Meetings.AddRange(SrapedMeetings);
                context.Deputies.AddRange(Deputies);
                context.Votes.AddRange(Votes);


                context.SaveChanges();
            }
        }