Ejemplo n.º 1
0
        public ActionResult SoiKeo(long id)
        {
            //ViewBag.Message = "World cup 2018 Info";
            string json     = string.Empty;
            string JsonText = FlagsConst.matchLnk + id + "/odds";
            SumLst ct       = new SumLst();

            ct.LstAll = new List <CatOdds>();
            //using (StreamReader reader = new StreamReader(JsonText))
            //{
            //    json = reader.ReadToEnd();
            //}

            using (WebClient wc = new WebClient())
            {
                json = wc.DownloadString(JsonText);
            }

            JavaScriptSerializer jss = new JavaScriptSerializer();
            var obj = jss.Deserialize <dynamic>(json);
            int len = obj.Length;

            for (int i = 0; i < len - 1; i++)
            {
                CatOdds std = new CatOdds();
                std.OddLst = new List <OddsRate>();
                std.name   = obj[i]["name"];
                int lende = obj[i]["regular"][0]["odds"].Length;
                //for (int j = 0; j < lende; j++)
                //{
                var match = new OddsRate();
                if (i != len - 1)
                {
                    if (lende == 3)
                    {
                        match.HomeWn     = obj[i]["regular"][0]["odds"][lende - 3]["decimalValue"];
                        match.Draw       = obj[i]["regular"][0]["odds"][lende - 2]["decimalValue"];
                        match.AwayWn     = obj[i]["regular"][0]["odds"][lende - 1]["decimalValue"];
                        match.HomeChoice = obj[i]["regular"][0]["odds"][lende - 3]["choice"];
                        match.DrawChoice = obj[i]["regular"][0]["odds"][lende - 2]["choice"];
                        match.AwayChoice = obj[i]["regular"][0]["odds"][lende - 1]["choice"];
                    }
                    else
                    {
                        match.HomeWn     = obj[i]["regular"][0]["odds"][lende - 2]["decimalValue"];
                        match.AwayWn     = obj[i]["regular"][0]["odds"][lende - 1]["decimalValue"];
                        match.HomeChoice = obj[i]["regular"][0]["odds"][lende - 2]["choice"];
                        match.AwayChoice = obj[i]["regular"][0]["odds"][lende - 1]["choice"];
                    }
                }
                else
                {
                    match.GoaLst = new List <MatchGoals>();
                    var lenfina = obj[len - 1]["regular"].Length;
                    for (int j = 0; j < lenfina; j++)
                    {
                        var mt = new MatchGoals();
                        mt.goal = obj[i]["regular"][0]["handicap"];
                    }
                }


                std.OddLst.Add(match);
                //}
                ct.LstAll.Add(std);
            }

            return(PartialView("_SoiKeo", ct));
        }
Ejemplo n.º 2
0
        private SumLst LoadParsing(string cst)
        {
            //SumLst ct = new SumLst();
            //ct.LstAll = new List<CatOdds>();
            //CatOdds std = new CatOdds();
            SumLst sl = new SumLst();
            sl.LstAll = new List<CatOdds>();
            try
            {

                string page = "";
                System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
                using (WebClient webClient = new WebClient())
                {
                    page = webClient.DownloadString(cst);
                }

                HtmlDocument resultat = new HtmlDocument();
                resultat.LoadHtml(page);

                AsLeague ai = new AsLeague();
                var root = resultat.DocumentNode;
                var anchors = root.Descendants("div");
                var handlingTimeNode = resultat.DocumentNode.SelectSingleNode("//*[@id=\"scn-HeaderNavigation_BreadcrumbLevel2\"]");

                List<HtmlNode> table = resultat.DocumentNode.Descendants().Where
                (x => (x.Name == "div" && x.Attributes["id"] != null && x.Attributes["id"].Value.Contains("masterdiv"))).ToList();

                var _nodChinh = resultat.DocumentNode.SelectNodes(@"//div[@class='coming']//table//tbody//tr");

                int a = 0; int check = 0;
                string nameLe = "", tmTime = "", nameho = "", nameaw = "", tyle = "";
                var dict = new Dictionary<string, int>();
                var tmpOd = new List<OddsRate>();

                foreach (HtmlNode tab in resultat.DocumentNode.SelectNodes("//div[contains(@class,'xboxcontent')]//div"))
                {
                    check++;
                    if (check != 5)
                    {
                        continue;
                    }
                    CatOdds lor = null; int mark = 0, max = 0;

                    foreach (HtmlNode dv in tab.SelectNodes("table"))
                    {
                        //lor = new CatOdds();
                        //lor.OddLst = new List<OddsRate>();

                        foreach (HtmlNode row in dv.SelectNodes("tr"))
                        {
                            /*continue*/
                            ;
                            int count = 0; int ctfo = 0; int dem = 0;
                            var ma = new OddsRate();

                            //List<OddsRate> rate;
                            bool check1 = false, check3 = false, check4 = false;
                            a++;
                            string name = row.InnerText.Trim();
                            //if (row.SelectSingleNode("./td[1]/strong")!= null)
                            //{
                            //    lor = new CatOdds();
                            //    lor.OddLst = new List<OddsRate>();
                            //    lor.name = name;
                            //    continue;
                            //}
                            //mark++;
                            //max = mark;
                            if (row == dv.SelectSingleNode("tr[last()]"))
                            {
                                dict.Add(nameaw, max);
                            }

                            foreach (HtmlNode cell in row.SelectNodes("td"))
                            {
                                count++;
                                string name2 = cell.InnerText.Trim();

                                if (cell.SelectNodes("a") != null)
                                {
                                    //count++;
                                    if (a != 1)
                                    {
                                        dict.Add(nameaw, max);
                                    }
                                    mark = 0;

                                    foreach (HtmlNode font in cell.SelectNodes("a"))
                                    {
                                        byte[] bytes = Encoding.Default.GetBytes(font.InnerText.Trim());
                                        string myString = Encoding.UTF8.GetString(bytes);
                                        //nameLe = font.InnerText.Trim();
                                        ma.NaLig = myString;
                                        nameaw = myString;
                                    }
                                    continue;
                                }

                                if (count == 1)
                                {
                                    byte[] bytes = Encoding.Default.GetBytes(cell.InnerText.Trim());
                                    string myString = Encoding.UTF8.GetString(bytes);
                                    ma.timeMt = myString;
                                    ma.mark = mark;

                                }
                                else if (count == 2)
                                {
                                    byte[] bytes = Encoding.Default.GetBytes(cell.InnerText.Trim());
                                    string myString = Encoding.UTF8.GetString(bytes);
                                    ma.HomeTe = myString;
                                    mark++;
                                    max = mark;
                                    ma.mark = mark;

                                }
                                else if (count == 5)
                                {
                                    byte[] bytes = Encoding.Default.GetBytes(cell.InnerText.Trim());
                                    string myString = Encoding.UTF8.GetString(bytes);
                                    ma.AwayWn = myString;
                                    ma.mark = mark;

                                }
                                else if (count == 6)
                                {
                                    byte[] bytes = Encoding.Default.GetBytes(cell.InnerText.Trim());
                                    string myString = Encoding.UTF8.GetString(bytes);
                                    ma.TotalChoice = myString;
                                    ma.mark = mark;

                                }
                                else if (count == 7)
                                {
                                    byte[] bytes = Encoding.Default.GetBytes(cell.InnerText.Trim());
                                    string myString = Encoding.UTF8.GetString(bytes);
                                    ma.OverChoice = myString;
                                    ma.mark = mark;

                                }
                                else if (count == 10)
                                {
                                    byte[] bytes = Encoding.Default.GetBytes(cell.InnerText.Trim());
                                    string myString = Encoding.UTF8.GetString(bytes);
                                    ma.DrawChoice = myString;
                                    ma.mark = mark;

                                }

                                //if (cell.SelectNodes("a") != null)
                                //{
                                //    continue;
                                //}

                                else if (count == 3)
                                {
                                    byte[] bytes = Encoding.Default.GetBytes(cell.InnerText.Trim());
                                    string myString = Encoding.UTF8.GetString(bytes);
                                    ma.HomeWn = myString;
                                    ma.mark = mark;

                                }
                                else if (count == 4)
                                {
                                    byte[] bytes = Encoding.Default.GetBytes(cell.InnerText.Trim());
                                    string myString = Encoding.UTF8.GetString(bytes);
                                    ma.Draw = myString;
                                    ma.mark = mark;

                                }
                                else if (count == 8)
                                {
                                    byte[] bytes = Encoding.Default.GetBytes(cell.InnerText.Trim());
                                    string myString = Encoding.UTF8.GetString(bytes);
                                    ma.UnderChoice = myString;
                                    ma.mark = mark;

                                }
                                else if (count == 9)
                                {
                                    byte[] bytes = Encoding.Default.GetBytes(cell.InnerText.Trim());
                                    string myString = Encoding.UTF8.GetString(bytes);
                                    ma.HomeChoice = myString;
                                    ma.mark = mark;

                                }
                                else if (count == 11)
                                {
                                    byte[] bytes = Encoding.Default.GetBytes(cell.InnerText.Trim());
                                    string myString = Encoding.UTF8.GetString(bytes);
                                    ma.AwayChoice = myString;
                                    ma.mark = mark;

                                }
                            }
                            if (!string.IsNullOrEmpty(ma.HomeTe))
                            {
                                tmpOd.Add(ma);
                            }
                            //lor.OddLst.Add(ma);
                            //ls.Add(lor);
                        }

                        //ls.Add(lor);
                        break;
                    }
                }

                int k = 0;
                foreach (var pa in dict)
                {
                    string key = pa.Key;
                    int val = pa.Value;
                    //tm = tm + val;
                    CatOdds ri = new CatOdds();
                    ri.name = key;
                    ri.OddLst = new List<OddsRate>();
                    for (int aq = k; aq < val + k; aq++)
                    {
                        ri.OddLst.Add(tmpOd[aq]);
                    }
                    k += val;
                    sl.LstAll.Add(ri);
                }

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                //MessageBox.Show("Network Problem!");
            }
            return sl;
        }
Ejemplo n.º 3
0
        // GET: SoiKeo
        public ActionResult Index(string mats, List <OddsRate> lst)
        {
            //List<OddsRate> AsLst = (List<OddsRate>)TempData["parsing"];
            //TempData.Keep();

            string time = "";
            string home = "";
            string away = "";

            if (mats != null)
            {
                int p1 = mats.IndexOf("+");
                int p2 = mats.LastIndexOf("+");
                int p3 = mats.IndexOf("-");

                time = mats.Substring(0, p1);
                home = mats.Substring(p1 + 1, p2 - p1 - 1);
                away = mats.Substring(p2 + 1, p3 - p2 - 1);

                var tem = TempData.Peek("match");
                tem = mats;
                TempData["match"] = tem;
            }
            else
            {
                mats = (string)TempData["match"];
                int p1 = mats.IndexOf("+");
                int p2 = mats.LastIndexOf("+");
                int p3 = mats.IndexOf("-");

                time = mats.Substring(0, p1);
                home = mats.Substring(p1 + 1, p2 - p1 - 1);
                away = mats.Substring(p2 + 1, p3 - p2 - 1);

                var tem = TempData.Peek("match");
                tem = mats;
                TempData["match"] = tem;
            }

            //ViewBag.Message = "World cup 2018 Info";
            int    pos    = mats.IndexOf("-");
            long   rid    = Int64.Parse(mats.Substring(pos + 1));
            string json   = string.Empty;
            string jsonMa = string.Empty;

            string JsonText   = FlagsConst.matchLnk + rid + "/odds";
            string JsonTextMa = FlagsConst.matchLnk + rid + "/details";

            SumLst ct = new SumLst();

            ct.LstAll = new List <CatOdds>();
            //using (StreamReader reader = new StreamReader(JsonText))
            //{
            //    json = reader.ReadToEnd();
            //}

            using (WebClient wc = new WebClient())
            {
                try
                {
                    json   = wc.DownloadString(JsonText);
                    jsonMa = wc.DownloadString(JsonTextMa);
                }
                catch (Exception ex)
                {
                    ViewBag.msg = ex.Message;
                    return(View("SoiKeo", ct));
                    //return Json(ct, JsonRequestBehavior.AllowGet);
                }
            }

            JavaScriptSerializer jss = new JavaScriptSerializer();
            var obj   = jss.Deserialize <dynamic>(json);
            var objma = jss.Deserialize <dynamic>(jsonMa);

            DateTime ustime = DateTime.ParseExact(time, "dd/MM/yyyy HH:mm tt", CultureInfo.InvariantCulture);
            var      timevr = ustime.ToString("HH:mm");

            int len = obj.Length;
            int hsc = objma["game"]["tournaments"][0]["events"][0]["status"]["code"] == null ? "?" : objma["game"]["tournaments"][0]["events"][0]["status"]["code"];;

            for (int i = 0; i < len; i++)
            {
                CatOdds std = new CatOdds();

                std.OddLst = new List <OddsRate>();
                std.name   = obj[i]["name"];
                int    lende;
                string tmps;
                if (hsc >= 6 && hsc <= 7)
                {
                    lende = obj[i]["live"][0]["odds"].Length;
                    tmps  = "live";
                }
                else
                {
                    lende = obj[i]["regular"][0]["odds"].Length;
                    tmps  = "regular";
                }
                //for (int j = 0; j < lende; j++)
                //{
                var match = new OddsRate();
                if (i != len - 1)
                {
                    if (lende == 3)
                    {
                        match.HomeWn     = obj[i][tmps][0]["odds"][lende - 3]["decimalValue"];
                        match.Draw       = obj[i][tmps][0]["odds"][lende - 2]["decimalValue"];
                        match.AwayWn     = obj[i][tmps][0]["odds"][lende - 1]["decimalValue"];
                        match.HomeChoice = obj[i][tmps][0]["odds"][lende - 3]["choice"];
                        match.DrawChoice = obj[i][tmps][0]["odds"][lende - 2]["choice"];
                        match.AwayChoice = obj[i][tmps][0]["odds"][lende - 1]["choice"];
                        match.cate       = 1;
                    }
                    else
                    {
                        match.HomeWn     = obj[i][tmps][0]["odds"][lende - 2]["decimalValue"];
                        match.AwayWn     = obj[i][tmps][0]["odds"][lende - 1]["decimalValue"];
                        match.HomeChoice = obj[i][tmps][0]["odds"][lende - 2]["choice"];
                        match.AwayChoice = obj[i][tmps][0]["odds"][lende - 1]["choice"];
                        match.cate       = 2;
                    }
                }
                else
                {
                    match.GoaLst = new List <MatchGoals>();
                    var lenfina = obj[len - 1][tmps].Length;
                    match.cate = 3;
                    for (int j = 0; j < lenfina; j++)
                    {
                        var mt = new MatchGoals();
                        mt.goal    = obj[len - 1][tmps][j]["handicap"];
                        mt.OverGo  = obj[len - 1][tmps][j]["odds"][0]["decimalValue"];
                        mt.UnderGo = obj[len - 1][tmps][j]["odds"][1]["decimalValue"];
                        match.GoaLst.Add(mt);
                    }
                }


                std.OddLst.Add(match);
                //}
                ct.LstAll.Add(std);
            }

            CatOdds stdAs = new CatOdds();

            stdAs.OddLst = new List <OddsRate>();

            foreach (var ma in lst)
            {
                bool     check1 = false, check3 = false, check4 = false;
                DateTime detime = DateTime.ParseExact(ma.timeMt, "HH:mm", CultureInfo.InvariantCulture);
                string   name3  = detime.AddHours(-1).ToString("HH:mm");

                if (timevr == name3)
                {
                    check1 = true;
                    home   = convertToUnSign3(home);
                    if (home.ToLower().Contains(ma.HomeTe.ToLower()))
                    {
                        check3 = true;
                        away   = convertToUnSign3(away);
                        if (away.ToLower().Contains(ma.AwayTe.ToLower()))
                        {
                            check4 = true;
                            if (check1 == true && check3 == true && check4 == true)
                            {
                                ma.cate = 6;
                                stdAs.OddLst.Add(ma);
                                stdAs.name = "Kèo Châu Á";
                                //match.ore.LstAll.Add(std);
                                ct.LstAll.Add(stdAs);
                                break;
                            }
                        }
                    }
                }
                else
                {
                    check1 = false;
                }
            }

            //return Json(ct, JsonRequestBehavior.AllowGet);
            return(View(ct));
        }