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}"); } }
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()); }
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)); }
public void AddSnapshot(CyberFootballMatch match) => StoreSnapshot(match);