public static List <PlayerBetSummary> GetPlayerStandingsForSeason(int seasonID) { var season = SeasonService.GetSeason(seasonID); var summaries = new List <PlayerBetSummary>(); if (season == null) { return(summaries); } var seasonBets = BetService.GetAllBetsForSeason(seasonID); var playerGroups = seasonBets.GroupBy(x => x.PlayerName); foreach (var group in playerGroups) { var summary = new PlayerBetSummary(); var wins = group.Where(x => x.Result == Result.Win); var notWins = group.Where(x => x.Result != Result.Win); var currentLoss = notWins.Sum(x => x.Stake); var currentProfit = wins.Sum(x => (x.Stake * x.Odds) - x.Stake); summary.PlayerName = group.Key; summary.TotalBets = group.Count(); summary.BetsWon = wins.Count(); summary.CashResult = GetCurrentCash(season.StartingCash, season.MinimumCash, currentProfit, currentLoss); summaries.Add(summary); } return(summaries); }
public static PlayerBetSummary GetCurrentPlayerStats(int seasonID, string playerName) { var summary = new PlayerBetSummary(); var season = SeasonService.GetSeason(seasonID); var myBets = BetService.GetAllBetsForSeason(seasonID) .Where(x => x.PlayerName == playerName); var wins = myBets.Where(x => x.Result == Result.Win); var notWins = myBets.Where(x => x.Result != Result.Win); var currentLoss = notWins.Sum(x => x.Stake); var currentProfit = wins.Sum(x => (x.Stake * x.Odds) - x.Stake); summary.PlayerName = playerName; summary.TotalBets = myBets.Count(); summary.BetsWon = wins.Count(); summary.CashResult = GetCurrentCash(season.StartingCash, season.MinimumCash, currentProfit, currentLoss); return(summary); }