예제 #1
0
        public void Process()
        {
            var matches = GetMatches();

            if (!matches.Any())
            {
                return;
            }

            //var cache = new Dictionary<string, string>();

            foreach (var lbe in matches)
            {
                _betsProcessor.AddSnapshot(lbe);

                var key = CyberFootballMatch.Key(lbe);
                //if (cache.ContainsKey(key))
                //    continue;

                //cache.Add(key, key);

                var h2h           = _headToHeadProvider.GetHeadToHead(lbe.Player1.Name, lbe.Player2.Name);
                var h2hStatistics = CalculateHead2Head(h2h);

                ProcessBets(GetBets(lbe, h2hStatistics));

                Console.WriteLine($"Match:({lbe.Player1.Name}/{lbe.Player1.Team}) - ({lbe.Player2.Name}/{lbe.Player2.Team})");
                Console.WriteLine($"P1:{h2hStatistics.P1WinsCount} - D:{h2hStatistics.DrawsCount} - P2:{h2hStatistics.P2WinsCount}");
            }
        }
예제 #2
0
        private static CyberFootballBet[] GetBets(CyberFootballMatch match, HeadToHeadStats stats)
        {
            var bets    = new List <CyberFootballBet>();
            var lastWin = stats.LastResult;

            if (lastWin == "x")
            {
                return(new CyberFootballBet[0]);
            }

            if (match.Player1.Name == lastWin)
            {
                bets.Add(new CyberFootballBet
                {
                    Match  = match,
                    Amount = 3,
                    Bet    = "win" + match.Player2.Name,
                    BetKey = match.LiveMatch.Win2betKey,
                    Odds   = match.LiveMatch.Win2Odds
                });
            }
            else
            {
                bets.Add(new CyberFootballBet
                {
                    Match  = match,
                    Amount = 3,
                    Bet    = "win" + match.Player1.Name,
                    BetKey = match.LiveMatch.Win1betKey,
                    Odds   = match.LiveMatch.Win1Odds
                });
            }

            bets.Add(new CyberFootballBet
            {
                Match  = match,
                Amount = 3,
                Bet    = "draw",
                BetKey = match.LiveMatch.DrawbetKey,
                Odds   = match.LiveMatch.DrawbetKey
            });

            return(bets.ToArray());
        }
예제 #3
0
        private void StoreSnapshot(CyberFootballMatch match)
        {
            var name = match.EventNo + "_" + DateTime.Now.ToString("yyyy-MM-dd_HH-mm") + ".json";

            File.WriteAllText(_dirSn.FullName + "\\" + name, JsonConvert.SerializeObject(match));
        }
예제 #4
0
 public void AddSnapshot(CyberFootballMatch match) => StoreSnapshot(match);