private void loadData()
 {
     string url = "http://www.oddschecker.com/football-betting";
     //string html = Helper.GetWebSiteContent("http://www.oddschecker.com/gaelic-games/gaelic-football/"); //(ConfigurationSettings.AppSettings["URL"]);
     CrawlAllMarkets crawl = new CrawlAllMarkets();
     CrawlFirstPage crawlpage = new CrawlFirstPage();
     CrawlEachMarket crawlmarket = new CrawlEachMarket();
     //string msg = crawlpage.DeleteFirstPageRecords();
     //Task taskA = Task.Factory.StartNew(() =>
     //{
     //    string msg1 = crawlpage.CrawlEachSport();
     //}, TaskCreationOptions.LongRunning | TaskCreationOptions.PreferFairness);
     string msg2 = crawl.CrawlBettingLinks();
     //crawlpage.CrawlWorldMarkets();
     //crawlpage.CrawlLeagues(url);
 }
        private void callback()
        {
            TraceService("Timer Started");

            CrawlAllMarkets crawl = new CrawlAllMarkets();
            CrawlFirstPage crawlpage = new CrawlFirstPage();
            ////CrawlEachMarket crawlmarket = new CrawlEachMarket();
            //string msg = crawlpage.DeleteFirstPageRecords();
            string msg1 = "", msg2 = "", msg3 = "";
            try
            {
                msg1 = DateTime.Now + ":" + crawlpage.CrawlEachSport();
            }
            catch (Exception ex)
            {
            }
            finally { TraceService("Reply from CrawlEachSport at " + msg1 + "\n"); }

            try
            {
                msg2 = DateTime.Now + ":" + crawl.CrawlBettingLinks();
            }
            catch (Exception ex) { }
            finally { TraceService("Reply from CrawlEachSport at " + msg2 + "\n"); }
            try
            {
                msg3 = DateTime.Now + ":" + crawlpage.CrawlAllGolf();
            }
            catch (Exception ex)
            {
            }
            finally
            {
                TraceService(" Reply from CrawlEachMatchResult at " + msg3 + "\n");
            }
            try
            {
                msg3 = DateTime.Now + ":" + crawlpage.CrawlEachMatchResult();
            }
            catch (Exception ex)
            {
            }
            finally
            {
                TraceService(" Reply from CrawlEachMatchResult at " + msg3 + "\n");
            }
        }
        private void OnElapsedTime(object source, ElapsedEventArgs e)
        {

            string html = Helper.GetWebSiteContent("http://www.oddschecker.com/gaelic-games/gaelic-football/"); //(ConfigurationSettings.AppSettings["URL"]);
            CrawlAllMarkets crawl = new CrawlAllMarkets();
            CrawlFirstPage crawlpage = new CrawlFirstPage();
            ////CrawlEachMarket crawlmarket = new CrawlEachMarket();
            string msg = crawlpage.DeleteFirstPageRecords();
            string msg1 = crawlpage.CrawlMyPage(html);
            string msg2 = crawl.CrawlBettingLinks();
            //TraceService("Reply from DeleteFirstPageRecords at " + DateTime.Now + ":" + msg + "\n Reply from CrawlMyPage at " + DateTime.Now + ":" + msg1 + "\n Reply from CrawlBettingLinks at " + DateTime.Now + ":" + msg2 + "\n");
            //string html = Helper.GetWebSiteContent(ConfigurationSettings.AppSettings["URL"]);
            //CrawlAllMarkets crawl = new CrawlAllMarkets();
            //CrawlFirstPage crawlpage = new CrawlFirstPage();
            //CrawlEachMarket crawlmarket = new CrawlEachMarket();
            
            //crawlpage.CrawlMyPage(html);
            //crawl.CrawlBettingLinks();
            //crawlmarket.CrawlMarketLinks();
        }
        protected void BindGrid()
        {
            BindingSource bindingSource1 = new BindingSource();
            dataGridMatches.AutoGenerateColumns = false;
            dataGridMatches.ColumnCount = 7;

            dataGridMatches.Columns[0].Name = "Match Date";
            dataGridMatches.Columns[0].DataPropertyName = "MatchDate";
            dataGridMatches.Columns[1].Name = "Time";
            dataGridMatches.Columns[1].DataPropertyName = "Time";
            dataGridMatches.Columns[2].Name = "Home";
            dataGridMatches.Columns[2].DataPropertyName = "Home";
            dataGridMatches.Columns[3].Name = "Draw";
            dataGridMatches.Columns[3].DataPropertyName = "Draw";
            dataGridMatches.Columns[4].Name = "Away";
            dataGridMatches.Columns[4].DataPropertyName = "Away";
            dataGridMatches.Columns[5].Name = "ID";
            dataGridMatches.Columns[5].DataPropertyName = "id";
            dataGridMatches.Columns[5].Visible = false;
            var buttonCol = new DataGridViewButtonColumn();
            buttonCol.UseColumnTextForButtonValue = true;
            buttonCol.Name = "Markets";
            buttonCol.Text = "View Markets";
            
            dataGridMatches.Columns.Add(buttonCol);
             //DataPropertyName = "BettingLink";
            //dataGridMatches.Columns[4].DataPropertyName = "Away";
            CrawlFirstPage crawl = new CrawlFirstPage();
            
            bindingSource1.DataSource = crawl.GetMatchInfo();
            dataGridMatches.DataSource = bindingSource1;
           
            
            //dataGridMatches.
            
        }
        public void FillData(string url, long id, long matchid,string bookies,int count)
        {
            OddsCheckerCrawler crawlcheck = MdiParent as OddsCheckerCrawler;
            
            try
            {
                CrawlEachMarket crawl = new CrawlEachMarket();
                //string msg = crawl.DeleteMarketOdds(id);
                //crawl.CrawlMarkets(url, id, matchid);

                DataGridView dataGridView1 = new DataGridView();
                DataTable dt = crawl.CrawlMarkets(url, id, matchid, bookies).Tables[0];
                DataRow newrow = dt.NewRow();
                dt.Rows.InsertAt(newrow, dt.Rows.Count);
                dataGridView1.DataSource = dt; 
                dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
                dataGridView1.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
                dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
                //dataGridView1.ColumnHeadersDefaultCellStyle.WrapMode = DataGridViewTriState.False;
                //dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
                //dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
                dataGridView1.AllowUserToDeleteRows = false;
                dataGridView1.AllowUserToAddRows = false;
                dataGridView1.BackgroundColor = SystemColors.ControlLightLight;
                dataGridView1.BorderStyle = BorderStyle.None;
                dataGridView1.RowHeadersVisible = false;
                //dataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);
                dataGridView1.CellDoubleClick += dataGridView1_CellDoubleClick;
                dataGridView1.DataBindingComplete += dataGridView1_DataBindingComplete;
                //dataGridView1.CellClick += dataGridView1_CellClick;
                dataGridView1.CellValueChanged += dataGridView1_CellValueChanged;
                //dataGridView1.Width = flowLayoutPanel1.Width - 30;
                dataGridView1.Name = Convert.ToString(id) + "," + Convert.ToString(matchid);
               // dataGridView1.Anchor = AnchorStyles.Bottom | AnchorStyles.Top;

                if (InvokeRequired)
                {
                    Action a = () =>
                    {
                        //if (!matchid.Equals(match_id))
                        if (!flowLayoutPanel1.Controls.ContainsKey(matchid.ToString()))
                        {
                            CrawlFirstPage crawlpage = new CrawlFirstPage();
                            DataTable dt1 = crawlpage.GetMatchInfo(matchid);
                            GroupBox grpBox = new GroupBox();
                            string match = Convert.ToString(dt1.Rows[0]["Name"])+" ("+Convert.ToString(dt1.Rows[0]["MatchDate"])+")";
                            grpBox.Text = match;
                            grpBox.Name = matchid.ToString();
                            grpBox.AutoSize = true;
                            FlowLayoutPanel flowpanel = new FlowLayoutPanel();
                            flowpanel.FlowDirection = FlowDirection.TopDown;
                            flowpanel.Dock = DockStyle.Fill;
                            flowpanel.WrapContents = false;
                            flowpanel.AutoSize = true;
                            flowpanel.Name = matchid.ToString()+matchid.ToString();
                            grpBox.Controls.Add(flowpanel);
                            flowLayoutPanel1.Controls.Add(grpBox);
                            grpBox.Anchor = AnchorStyles.Left | AnchorStyles.Right;
                            
                            //grpBox.Anchor = AnchorStyles.Left | AnchorStyles.Right;
                        }

                        FlowLayoutPanel panel = flowLayoutPanel1.Controls.Find(matchid.ToString() + matchid.ToString(), true).FirstOrDefault() as FlowLayoutPanel;
                        panel.Controls.Add(dataGridView1);
                        countthread++;
                        if (countthread.Equals(count))
                        {
                            crawlcheck.SetProgress(false);
                            crawlcheck.IsProcessRunning = false;
                        }
                    };
                    BeginInvoke(a);
                }
            }
            catch (Exception ex)
            {
                if (InvokeRequired)
                {
                    Action b = () =>
                    {
                        crawlcheck.SetProgress(false);
                        crawlcheck.IsProcessRunning = false;
                    }; BeginInvoke(b);
                   
                }

            }
           
        }
        private void crawlerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // Start Crawling.
            //  time = new System.Threading.Timer(startcrawling());
            //BackCrawler.GetCrawler d = new GetCrawler();
            //d.startCrawling();

            //      foreach (ToolStripMenuItem item in startCrawlingToolStripMenuItem.DropDown.Items)
            //   {
            // item.Text = (sender as ToolStripMenuItem).Text;
            if (IsCrawlProcessRunning == true)
            {
                SetProgress(false);
                IsCrawlProcessRunning = false;
            }
            SetProgress(true);
            IsCrawlProcessRunning = true;
            CrawlFirstPage crawldata = new CrawlFirstPage();

            if ((sender as ToolStripMenuItem).Text == "League")
            {
                DataTable dt = crawldata.GetSports("2");
                string link = dt.Rows[0]["link"].ToString();
                int sportid = Convert.ToInt32(dt.Rows[0]["sportid"].ToString());
                if (sportid == 2)
                    crawldata.CrawlLeagues(link);
            }
            else if ((sender as ToolStripMenuItem).Text == "WorldMarket")
            {
                DataTable dt = crawldata.GetSports("2");
                string link = dt.Rows[0]["link"].ToString();
                int sportid = Convert.ToInt32(dt.Rows[0]["sportid"].ToString());
                if (sportid == 2)
                    crawldata.CrawlWorldMarkets();
            }
            else if ((sender as ToolStripMenuItem).Text == "Soccer")
            {
                DataTable dt = crawldata.GetSports((sender as ToolStripMenuItem).Name.ToString());
                string link = dt.Rows[0]["link"].ToString();
                int sportid = Convert.ToInt32(dt.Rows[0]["sportid"].ToString());
                // soocer
                //   crawldata.CrawlLeagues(link);
                //   crawldata.CrawlWorldMarkets();
                DataSet ds = crawldata.GetLeague();
                for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
                {
                    string matchlink = Convert.ToString(ds.Tables[0].Rows[j]["link"]);
                    int sport_id = Convert.ToInt32(ds.Tables[0].Rows[j]["sportid"]);
                    long leagueid = Convert.ToInt32(ds.Tables[0].Rows[j]["leagueid"]);
                    ThreadParameters t = new ThreadParameters();
                    t.URL = matchlink;
                    t.SportID = sport_id;
                    t.LeagueID = leagueid;
                    crawldata.CrawlMyPage(t);
                }
            }
            else if ((sender as ToolStripMenuItem).Text == "GaaFootball")
            {
                DataTable dt = crawldata.GetSports((sender as ToolStripMenuItem).Name.ToString());
                string link = dt.Rows[0]["link"].ToString();
                int sportid = Convert.ToInt32(dt.Rows[0]["sportid"].ToString());
                // GAA Football
                ThreadParameters tp = new ThreadParameters();
                tp.URL = link;
                tp.SportID = sportid;
                if (sportid == 12)
                {
                    crawldata.CrawlMyPage(tp);
                }
            }
            else if ((sender as ToolStripMenuItem).Text == "GaaHurling")
            {
                DataTable dt = crawldata.GetSports((sender as ToolStripMenuItem).Name.ToString());
                string link = dt.Rows[0]["link"].ToString();
                int sportid = Convert.ToInt32(dt.Rows[0]["sportid"].ToString());
                ThreadParameters tp = new ThreadParameters();
                tp.URL = link;
                tp.SportID = sportid;
                // GAA Hurling.
                if (sportid == 28)
                {
                    crawldata.CrawlMyPage(tp);
                }
            }
            else if ((sender as ToolStripMenuItem).Text == "Golf")
            {
                DataTable dt = crawldata.GetSports((sender as ToolStripMenuItem).Name.ToString());
                string link = dt.Rows[0]["link"].ToString();
                int sportid = Convert.ToInt32(dt.Rows[0]["sportid"].ToString());
                // Golf
                if (sportid == 29)
                {
                    crawldata.CrawlGolfTurnament(link, sportid.ToString());
                }
            }
            else if ((sender as ToolStripMenuItem).Text == "GolfMarketName")
            {
                crawldata.CrawlGolfBettingMarketName();
            }
            else if ((sender as ToolStripMenuItem).Text == "GolfMarkets")
            {
                crawldata.CrawlGolfBettingMarket();
            }
            else if ((sender as ToolStripMenuItem).Text == "BettingMarket")
            {
                CrawlAllMarkets crawl = new CrawlAllMarkets();
                crawl.CrawlBettingLinks();
            }
            else if ((sender as ToolStripMenuItem).Text == "MarketResult")
            {
                crawldata.CrawlEachMatchResult();
            }
            //  Thread d = new Thread();
            SetProgress(false);
            IsCrawlProcessRunning = false;
            //   }
        }
        private void CreateSportMenu()
        {
            CrawlFirstPage crawl = new CrawlFirstPage();
            DataTable dt = crawl.GetSports();
            if (dt.Rows.Count > 0)
            {
                ToolStripMenuItem market;
                market = new ToolStripMenuItem();
                market.Text = "League";
                market.Name = "League";
                market.Click += new System.EventHandler(this.crawlerToolStripMenuItem_Click);
                this.startCrawlingToolStripMenuItem.DropDownItems.Add(market);

                market = new ToolStripMenuItem();
                market.Text = "WorldMarket";
                market.Name = "WorldMarket";
                market.Click += new System.EventHandler(this.crawlerToolStripMenuItem_Click);
                this.startCrawlingToolStripMenuItem.DropDownItems.Add(market);

                foreach (DataRow row in dt.Rows)
                {
                    market = new ToolStripMenuItem();
                    market.Text = row["SportName"].ToString();
                    market.Name = row["SportID"].ToString();
                    //market.CheckState = System.Windows.Forms.CheckState.Checked;
                    market.Click += new System.EventHandler(this.crawlerToolStripMenuItem_Click);
                    this.startCrawlingToolStripMenuItem.DropDownItems.Add(market);
                  
                    market = new ToolStripMenuItem();
                    market.Text = row["SportName"].ToString();
                    market.Name = row["SportID"].ToString();
                    market.CheckOnClick = true;
                    //market.CheckState = System.Windows.Forms.CheckState.Checked;
                    market.Click += new System.EventHandler(this.sportviewToolStripMenuItem_Click);
                    this.sportsToolStripMenuItem.DropDownItems.Add(market);
                }
                market = new ToolStripMenuItem();
                market.Text = "GolfMarketName";
                market.Name = "GolfMarketName";
                market.Click += new System.EventHandler(this.crawlerToolStripMenuItem_Click);
                this.startCrawlingToolStripMenuItem.DropDownItems.Add(market);

                market = new ToolStripMenuItem();
                market.Text = "GolfMarkets";
                market.Name = "GolfMarkets";
                market.Click += new System.EventHandler(this.crawlerToolStripMenuItem_Click);
                this.startCrawlingToolStripMenuItem.DropDownItems.Add(market);

                market = new ToolStripMenuItem();
                market.Text = "BettingMarket";
                market.Name = "BettingMarket";
                market.Click += new System.EventHandler(this.crawlerToolStripMenuItem_Click);
                this.startCrawlingToolStripMenuItem.DropDownItems.Add(market);

                market = new ToolStripMenuItem();
                market.Text = "MarketResult";
                market.Name = "MarketResult";
                market.Click += new System.EventHandler(this.crawlerToolStripMenuItem_Click);
                this.startCrawlingToolStripMenuItem.DropDownItems.Add(market);
            }
        }
 private void btnsave_Click(object sender, EventArgs e)
 {
     CrawlAllMarkets c = new CrawlAllMarkets();
     
   //  c.CrawlBettingMarkets("http://www.oddschecker.com//football/world/morocco/gnf-1/ocs-olympique-de-safi-v-fus-rabat/betting-markets", 7624);
     CrawlFirstPage crawl = new CrawlFirstPage();
     Console.WriteLine("Crawling Started EachSport");
     crawl.GetMatchListByTime();
  //   crawl.CrawlChampionLeauge("3866", "file:///E:/OddsCompiler/z-rowdata/Results/Barcelona%20v%20Atletico%20Madrid/Barcelona%20v%20Atletico%20Madrid%20Winner%20Betting%20Odds%20%20%20Football%20Betting%20%20%20Oddschecker.htm", "34pm");
 }
        private void FillMatchInfo(string id, string link, string time,int count)
        {
            CrawlFirstPage crawl = new CrawlFirstPage();
            //  crawl.CrawlChampionLeauge(id, link,time);
           // crawl.CrawlChampionLeauge(id, "file:///E:/OddsCompiler/z-rowdata/Results/Barcelona%20v%20Atletico%20Madrid/Barcelona%20v%20Atletico%20Madrid%20Winner%20Betting%20Odds%20%20%20Football%20Betting%20%20%20Oddschecker.htm", time);
            OddsCheckerCrawler crawlcheck = MdiParent as OddsCheckerCrawler;
            try
            {
                DataSet dt = crawl.GetMatchResult(Convert.ToInt32(id));
                DataGridView dataGridView1 = new DataGridView();
                dataGridView1.DataSource = dt.Tables[0];
                dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
                dataGridView1.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
                dataGridView1.AllowUserToDeleteRows = false;
                dataGridView1.BackgroundColor = SystemColors.ControlLightLight;
                dataGridView1.AllowUserToAddRows = false;
                dataGridView1.RowHeadersVisible = false;
                dataGridView1.Width = flowLayoutPanel1.Width - 5;
                dataGridView1.Name = Convert.ToString(id) ;

                // Second DataGridView
                DataGridView dataGridView2 = new DataGridView();
                dataGridView2.DataSource = dt.Tables[1];
                dataGridView2.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
                dataGridView2.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
                dataGridView2.AllowUserToDeleteRows = false;
                dataGridView2.BackgroundColor = SystemColors.ControlLightLight;
                dataGridView2.AllowUserToAddRows = false;
                dataGridView2.RowHeadersVisible = false;
                dataGridView2.Width = flowLayoutPanel1.Width - 5;
                dataGridView2.Name = Convert.ToString(id);
                if (InvokeRequired)
                {
                    Action a = () =>
                    {
                        flowLayoutPanel1.Controls.Add(dataGridView1);
                        flowLayoutPanel1.Controls.Add(dataGridView2);
             //           dataGridView1.DataSource = crawl.GetMatchResult(Convert.ToInt32(id)).DefaultView;
             //           dataGridView1.Refresh();
                        foreach (DataGridViewColumn column in dataGridView1.Columns)
                        {
                            column.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
                        }
                        foreach (DataGridViewColumn column in dataGridView2.Columns)
                        {
                            column.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
                        }
                        countthread++;
                        if (countthread.Equals(count))
                        {
                            crawlcheck.SetProgress(false);
                            crawlcheck.IsProcessRunning = false;
                        }
                    };
                    BeginInvoke(a);
                }
            }
            catch (Exception ex)
            {
                if (InvokeRequired)
                {
                    Action b = () =>
                    {
                        crawlcheck.SetProgress(false);
                        crawlcheck.IsProcessRunning = false;
                    }; BeginInvoke(b);

                }

            }
        }
 private void btnsave_Click(object sender, EventArgs e)
 {
     GenerateCoupon coupon = new GenerateCoupon();
     CrawlFirstPage crawl = new CrawlFirstPage();
     try
     {
         if (flowLayoutPanel1.Controls.Count > 0)
         {
             //if (!string.IsNullOrEmpty(txtmatchdate.Text))
             //{
             //    string enddatetime = String.Empty;
             //    string[] matchdate = txtmatchdate.Text.Split(' ');
             //    enddatetime = matchdate[1].Substring(0, 2) + " " + matchdate[2].Substring(0, 3) + " " + matchdate[3];
             //    enddatetime = DateTime.Parse(enddatetime).ToString("yyyy-MM-dd");
             //    crawl.UpdateMatch(Convert.ToInt64(txtmatchdate.Name),txtmatchdate.Text,enddatetime);
             //}
             foreach (Control ctrl in flowLayoutPanel1.Controls)
             {
                 if (ctrl.GetType().Equals(typeof(DataGridView)))
                 {
                     DataGridView grid = ctrl as DataGridView;
                     for (int i = 0; i < grid.Rows.Count - 1; i++)
                     {
                         long id = Convert.ToInt64(grid.Rows[i].Cells[3].Value);
                         DataGridViewComboBoxCell cell = grid.Rows[i].Cells[4] as DataGridViewComboBoxCell;
                         string result = Convert.ToString(cell.Value);
                         coupon.UpdateCoupon(id, result);
                     }
                 }
             }
             MessageBox.Show("Coupon updated successfully");
             flowLayoutPanel1.Refresh();
         }
         else
         {
             MessageBox.Show("Data not available!");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("An error occured while saving changes");
     }
 }