Esempio n. 1
0
        public (DateTime?startTime, double timeDisc) GetDateTime(OlimpEvent ev)
        {
            string monthComponent = ev.StartDate.Substring(0, ev.StartDate.IndexOf(" "));

            string timeComponent = ev.StartDate.Substring(ev.StartDate.LastIndexOf(" ") + 1);

            string day = ev.StartDate.Substring(ev.StartDate.IndexOf(" ") + 1, 2);

            TimeSpan span = TimeSpan.ParseExact(timeComponent, "c", null);



            DateTime dateTime;

            if (monthComponent == "Dec")
            {
                dateTime = new DateTime(2019, 12, Int32.Parse(day), span.Hours, span.Minutes, span.Seconds);


                double timeDisc = ((DateTime)dateTime - (DateTime)DateTime.Now).TotalMinutes;

                return(dateTime, timeDisc);
            }

            else
            {
                return(null, 0);
            }
        }
Esempio n. 2
0
        public (List <Total> home, List <Total> away) GetTeamTotals(HtmlNode node, OlimpEvent olimpEvent)
        {
            List <Total> home = new List <Total>();
            List <Total> away = new List <Total>();

            try
            {
                foreach (HtmlNode htmlNode in node.ChildNodes)
                {
                    if (htmlNode.OriginalName == "div" && this.GetAtributeValueByName(htmlNode, "id").StartsWith(olimpEvent.EventId) == true)
                    {
                        HtmlNodeCollection htmlNodes = htmlNode.ChildNodes;

                        foreach (HtmlNode nodeLineWrapper in htmlNodes)
                        {
                            Total teamTotal = new Total();
                            if (nodeLineWrapper.OriginalName == "div" && this.GetAtributeValueByName(nodeLineWrapper, "class") == "lineWrapper")
                            {
                                var result = this._htmlOddsParse.GetLineTwo(nodeLineWrapper);

                                if (result.name1 != null)
                                {
                                    decimal totalValue = this.GetMarketValue(result.name1);
                                    teamTotal.Points = totalValue;
                                    teamTotal.Under  = result.k1;
                                }
                                if (result.name2 != null)
                                {
                                    decimal totalValue = this.GetMarketValue(result.name2);
                                    teamTotal.Points = totalValue;
                                    teamTotal.Over   = result.k2;
                                }

                                if ((result.name1 != null && result.name1.Contains(olimpEvent.HomeTeam)) || (result.name2 != null && result.name2.Contains(olimpEvent.HomeTeam)))
                                {
                                    home.Add(teamTotal);
                                }

                                else
                                {
                                    away.Add(teamTotal);
                                }
                            }
                        }
                    }
                }

                return(home, away);
            }

            catch (Exception ex)
            {
                return(null, null);
            }
        }
Esempio n. 3
0
        public async Task <List <OlimpEvent> > GetEventsByLeague(OlimpLeague league)
        {
            List <OlimpEvent> events = new List <OlimpEvent>();
            string            url    = league.Href;


            HtmlNode documentNode = this.GetDocumentNodeByUrl(url);

            if (documentNode != null)
            {
                try
                {
                    HtmlNode eventsDiv = documentNode.QuerySelector(".to_header");

                    HtmlNodeCollection nodes = eventsDiv.ChildNodes;

                    for (int i = 0; i < nodes.Count; i++)
                    {
                        if (nodes[i].OriginalName == "div" && this.GetAtributeValueByName(nodes[i], "data-id") == league.Id)
                        {
                            HtmlNode chListNode = nodes[i + 2];


                            foreach (HtmlNode node in chListNode.ChildNodes)
                            {
                                if (node.OriginalName == "div" && this.GetAtributeValueByName(node, "class") == "ch_line")
                                {
                                    OlimpEvent olimpEvent = this.GetOlimpEventByNode(node);
                                    olimpEvent.LeagueName = league.Name;
                                    olimpEvent.Dateadded  = DateTime.Now.ToString();


                                    events.Add(olimpEvent);
                                }
                            }
                        }
                    }
                }

                catch (Exception ex)
                {
                    return(null);
                }
            }

            else
            {
                return(null);
            }

            return(events);
        }
Esempio n. 4
0
        private OlimpEvent GetOlimpEventByNode(HtmlNode eventInformContainer)
        {
            OlimpEvent olimpEvent = new OlimpEvent();

            olimpEvent.EventId = this.GetAtributeValueByName(eventInformContainer, "data-id");

            olimpEvent.StartDate = eventInformContainer.ChildNodes[1].ChildNodes[1].ChildNodes[1].InnerText.Replace("&nbsp;", " ");

            string teams = eventInformContainer.ChildNodes[1].ChildNodes[1].ChildNodes[3].InnerText;

            var eventTeams = this.GetHomeAwayTeams(teams);

            olimpEvent.HomeTeam = eventTeams.HomeTeam;
            olimpEvent.AwayTeam = eventTeams.AwayTeam;

            return(olimpEvent);
        }
Esempio n. 5
0
        public async Task <OlimpOddEvent> GetOddsByEventId(OlimpEvent olimpEvent)
        {
            string   url          = "/en/sports/match/" + olimpEvent.EventId;
            HtmlNode documentNode = this.GetDocumentNodeByUrl(url);

            if (documentNode != null)
            {
                HtmlNode oddsContainer = documentNode.QuerySelector(".coef");

                MoneyLine       moneyLine    = new MoneyLine();
                DoubleChance    doubleChance = new DoubleChance();
                List <Total>    totals       = new List <Total>();
                List <Handicap> handicaps    = new List <Handicap>();

                List <Total> homeTotals = new List <Total>();
                List <Total> awayTotals = new List <Total>();

                OlimpOddEvent olimpOddEvent = new OlimpOddEvent();



                try
                {
                    foreach (HtmlNode node in oddsContainer.ChildNodes)
                    {
                        if (node.OriginalName == "div" && this.GetAtributeValueByName(node, "class") == "")
                        {
                            foreach (HtmlNode htmlNode in node.ChildNodes)
                            {
                                if (htmlNode.OriginalName == "div" && this.GetAtributeValueByName(htmlNode, "class") == "livelineheader")
                                {
                                    string type = this.GetMarketTypeByLiveheaderNode(htmlNode);

                                    if (type == "FULL TIME RESULT")

                                    {
                                        moneyLine = this.getMoneylineFoEvent(node, olimpEvent.EventId);
                                    }


                                    if (type == "DOUBLE CHANCE")
                                    {
                                        doubleChance = this.getDoubleChanceFoEvent(node, olimpEvent.EventId);
                                    }
                                    if (type == "TOTAL GOALS")
                                    {
                                        Total t = this.GetTotalForEvent(node, olimpEvent.EventId);
                                        if (t != null)
                                        {
                                            totals.Add(t);
                                        }
                                    }

                                    if (type == "ALTERNATIVE TOTAL GOALS")
                                    {
                                        List <Total> totals2 = this.GetTotalGoals(node, olimpEvent.EventId);
                                        if (totals2 != null)
                                        {
                                            totals.AddRange(totals2);
                                        }
                                    }
                                    if (type == "HANDICAP RESULT")
                                    {
                                        Handicap h = this.GetHandicap(node, olimpEvent.EventId);
                                        if (h != null)
                                        {
                                            handicaps.Add(h);
                                        }
                                    }

                                    if (type == "ALTERNATIVE HANDICAP RESULT")
                                    {
                                        List <Handicap> hdps = this.GetHandicaps(node, olimpEvent.EventId);
                                        if (hdps != null)
                                        {
                                            handicaps.AddRange(hdps);
                                        }
                                    }


                                    if (type == "TEAM TOTAL")
                                    {
                                        var result = this.GetTeamTotals(node, olimpEvent);
                                        if (result.home != null)
                                        {
                                            awayTotals = result.away;
                                            homeTotals = result.home;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    return(null);
                }



                olimpOddEvent.moneyLine    = moneyLine;
                olimpOddEvent.doubleChance = doubleChance;
                olimpOddEvent.Totals       = totals;
                olimpOddEvent.Handicaps    = handicaps;
                olimpOddEvent.AwayTotals   = awayTotals;
                olimpOddEvent.HomeTotals   = homeTotals;


                olimpOddEvent.EventId    = olimpEvent.EventId;
                olimpOddEvent.HomeTeam   = olimpEvent.HomeTeam;
                olimpOddEvent.AwayTeam   = olimpEvent.AwayTeam;
                olimpOddEvent.LeagueName = olimpEvent.LeagueName;
                olimpOddEvent.StartDate  = olimpEvent.StartDate;
                olimpOddEvent.DateAdded  = DateTime.Now.ToString();

                return(olimpOddEvent);
            }
            else
            {
                return(null);
            }
        }