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)); }
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; }
// 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)); }