public async Task <List <TeamStat> > GetTeamStatsResultsAsync() { // Get all the data sources for ranking data var rankingDataSource = await _wpbService.GetRankingDataSources(); var statData = new List <TeamStat>(); foreach (var result in rankingDataSource) { var rankStat = ParseDataSource.ParseRankingSource(result, result.ClassNameNode); foreach (var stat in rankStat) { try { var team = await _wpbService.GetTeamByTeamName(stat.TeamName); if (team != null) { var newStat = new TeamStat() { TeamName = team.TeamName, TeamId = team.Id, TeamCode = team.TeamCode, SubDivisionId = team.SubDivisionId, Position = stat.Position, GamesPlayed = stat.GamesPlayed, GamesWon = stat.GamesWon, GamesLost = stat.GamesLost, BasketsFor = stat.BasketsFor, BasketsAganist = stat.BasketsAganist, PointsDifference = stat.PointsDifference, Points = stat.Points, WinPercentage = StatisticsCalculator.WinPercentage(stat.GamesWon, stat.GamesPlayed).ToString(), LossPercentage = StatisticsCalculator.LossPercentage(stat.GamesLost, stat.GamesPlayed).ToString(), BasketsPerGame = StatisticsCalculator.BasketsPerGame(stat.BasketsFor, stat.GamesPlayed).ToString(), WinLossPercent = StatisticsCalculator.WinLossPercentage(stat.GamesWon, stat.GamesLost).ToString(), WinsOver500 = StatisticsCalculator.WinsOver50(stat.GamesWon, stat.GamesLost).ToString(), WPyth = StatisticsCalculator.WPyth(stat.BasketsFor, stat.BasketsAganist).ToString(), }; statData.Add(newStat); } else { throw new System.ArgumentException( "Detected null values in either team variable!"); } } catch (Exception err) { var msg = err.ToString(); } } } return(statData); }