Пример #1
0
        public ActionResult GetEvents(Int32 sportid, Int32 leagueid)
        {
            XmlDocument eventsDoc = GetPinnacleXmlFeed(eventsURL + "?sportid=" + sportid + "&leagueid=" + leagueid);

            XmlNodeList events = eventsDoc.SelectNodes("//event");

            List<Event> eventsList = new List<Event>();

            // EACH EVENT
            foreach (XmlNode e in events)
            {
                List<Period> periods = new List<Period>();

                // EACH PERIOD (match, 1st half, 2nd half etc)
                foreach (XmlNode p in e.SelectSingleNode("periods").SelectNodes("period"))
                {
                    List<Spread> spreads = new List<Spread>();
                    List<Total> totals = new List<Total>();
                    List<TeamTotal> teamTotals = new List<TeamTotal>();
                    Moneyline moneyline = new Moneyline();

                    // EACH SPREAD (-1.5 etc)
                    if (p.SelectSingleNode("spreads") != null)
                    {
                        foreach (XmlNode s in p.SelectSingleNode("spreads").SelectNodes("spread"))
                        {
                            Spread spread = new Spread
                            {
                                HomeSpread = double.Parse(s.SelectSingleNode("homeSpread").InnerText, System.Globalization.CultureInfo.InvariantCulture),
                                AwaySpread = double.Parse(s.SelectSingleNode("awaySpread").InnerText, System.Globalization.CultureInfo.InvariantCulture),
                                HomePrice = AmericanToDecimalOdds(double.Parse(s.SelectSingleNode("homePrice").InnerText, System.Globalization.CultureInfo.InvariantCulture)),
                                AwayPrice = AmericanToDecimalOdds(double.Parse(s.SelectSingleNode("awayPrice").InnerText, System.Globalization.CultureInfo.InvariantCulture))
                            };

                            spreads.Add(spread);
                        }
                    }

                    // EACH TOTAL (over/under points)
                    if (p.SelectSingleNode("totals") != null)
                    {
                        foreach (XmlNode t in p.SelectSingleNode("totals").SelectNodes("total"))
                        {
                            Total total = new Total
                            {
                                Points = double.Parse(t.SelectSingleNode("points").InnerText, System.Globalization.CultureInfo.InvariantCulture),
                                OverPrice = AmericanToDecimalOdds(double.Parse(t.SelectSingleNode("overPrice").InnerText, System.Globalization.CultureInfo.InvariantCulture)),
                                UnderPrice = AmericanToDecimalOdds(double.Parse(t.SelectSingleNode("underPrice").InnerText, System.Globalization.CultureInfo.InvariantCulture))
                            };

                            totals.Add(total);
                        }
                    }

                    // EACH TEAM TOTAL (over/under team points)
                    if (p.SelectSingleNode("teamTotals") != null)
                    {
                        foreach (XmlNode tt in p.SelectNodes("teamTotals"))
                        {
                            TeamTotal teamTotal = new TeamTotal
                            {
                                HomeTeamTotal =  double.Parse(tt.SelectSingleNode("homeTeamTotal/total").InnerText, System.Globalization.CultureInfo.InvariantCulture),
                                HomeTeamOverPrice = AmericanToDecimalOdds(double.Parse(tt.SelectSingleNode("homeTeamTotal/overPrice").InnerText, System.Globalization.CultureInfo.InvariantCulture)),
                                HomeTeamUnderPrice = AmericanToDecimalOdds(double.Parse(tt.SelectSingleNode("homeTeamTotal/underPrice").InnerText, System.Globalization.CultureInfo.InvariantCulture)),
                                AwayTeamTotal =  double.Parse(tt.SelectSingleNode("awayTeamTotal/total").InnerText, System.Globalization.CultureInfo.InvariantCulture),
                                AwayTeamOverPrice = AmericanToDecimalOdds(double.Parse(tt.SelectSingleNode("awayTeamTotal/overPrice").InnerText, System.Globalization.CultureInfo.InvariantCulture)),
                                AwayTeamUnderPrice = AmericanToDecimalOdds(double.Parse(tt.SelectSingleNode("awayTeamTotal/underPrice").InnerText, System.Globalization.CultureInfo.InvariantCulture))
                            };

                            teamTotals.Add(teamTotal);
                        }
                    }

                    // MONEYLINE
                    if (p.SelectSingleNode("moneyLine") != null)
                    {
                        if (p.SelectSingleNode("moneyLine/homePrice") != null)
                        {
                            moneyline.HomePrice = AmericanToDecimalOdds(double.Parse(p.SelectSingleNode("moneyLine/homePrice").InnerText, System.Globalization.CultureInfo.InvariantCulture));
                        }
                        if (p.SelectSingleNode("moneyLine/drawPrice") != null)
                        {
                            moneyline.DrawPrice = AmericanToDecimalOdds(double.Parse(p.SelectSingleNode("moneyLine/drawPrice").InnerText, System.Globalization.CultureInfo.InvariantCulture));
                        }
                        if (p.SelectSingleNode("moneyLine/awayPrice") != null)
                        {
                            moneyline.AwayPrice = AmericanToDecimalOdds(double.Parse(p.SelectSingleNode("moneyLine/awayPrice").InnerText, System.Globalization.CultureInfo.InvariantCulture));
                        }
                    }

                    Period prd = new Period
                    {
                        ApiLineID = Convert.ToInt32(p.Attributes["lineId"].Value),
                        Number = Convert.ToInt32(p.SelectSingleNode("number").InnerText),
                        Description = p.SelectSingleNode("description").InnerText,
                        Spreads = spreads,
                        Totals = totals,
                        Moneyline = moneyline,
                        TeamTotals = teamTotals
                    };

                    if (prd.Number == 0)
                    {
                        prd.DescriptionShort = "FullTime";
                    }
                    else if (prd.Number == 1)
                    {
                        prd.DescriptionShort = "FirstHalf";
                    }
                    else if (prd.Number == 2)
                    {
                        prd.DescriptionShort = "SecondHalf";
                    }

                    periods.Add(prd);
                }

                Event evt = new Event
                {
                    ApiID = Convert.ToInt32(e.SelectSingleNode("id").InnerText),
                    ApiLeagueID = Convert.ToInt32(e.ParentNode.ParentNode.SelectSingleNode("id").InnerText),
                    ApiSportID = Convert.ToInt32(e.ParentNode.ParentNode.ParentNode.ParentNode.SelectSingleNode("id").InnerText),
                    IsLive = e.SelectSingleNode("IsLive").InnerText,
                    ApiStartDateTime = DateTime.Parse(e.SelectSingleNode("startDateTime").InnerText, System.Globalization.CultureInfo.InvariantCulture),
                    //ApiStartDateTime = e.SelectSingleNode("startDateTime").InnerText,
                    HomeTeam = e.SelectSingleNode("homeTeam/name").InnerText,
                    AwayTeam = e.SelectSingleNode("awayTeam/name").InnerText,
                    Periods = periods.OrderBy(x => x.Number)
                };

                eventsList.Add(evt);
            }

            eventsList = eventsList.OrderBy(x => x.ApiStartDateTime).ToList();

            League league = new League();
            league = db.Leagues.Where(x => x.ApiID == leagueid).ToList().First();

            OddsModel om = new OddsModel
            {
                Events = eventsList,
                Sports = null,
                Leagues = null,
                League = league
            };

            return Json(new { success = true, message = "success", cssclass = "success", obj = om, partialView = RenderRazorViewToString("_EventsPartial", om) }, JsonRequestBehavior.AllowGet);
        }
Пример #2
0
        //
        // GET: /Odds/
        public ActionResult Index()
        {
            var oddsmodel = new OddsModel
            {
                Sports = GetSports()
            };

            return View(oddsmodel);
        }