/** * Team statistics view model * WinDrawLossViewModel[0] - Host matches * WinDrawLossViewModel[1] - Guest matches */ private List <TeamStatistics> ParseTeamStatistics(List <Team> rawTeamsData) { List <TeamStatistics> allTeamsStatistics = new List <TeamStatistics>(); foreach (Team team in rawTeamsData) { WinDrawLossViewModel hostScores = ParseHostScores(team.HostMatches); WinDrawLossViewModel guestScores = ParseGuestScores(team.GuestMatches); //WinDrawLossViewModel totalScores = new WinDrawLossViewModel() //{ // Win = hostScores.Win + guestScores.Win, // Draw = hostScores.Draw + guestScores.Draw, // Loss = hostScores.Loss + guestScores.Loss //}; TeamStatistics teamStats = new TeamStatistics() { TeamId = team.Id, TeamName = team.Name, Statistics = new WinDrawLossViewModel { Win = hostScores.Win + guestScores.Win, Draw = hostScores.Draw + guestScores.Draw, Loss = hostScores.Loss + guestScores.Loss } }; allTeamsStatistics.Add(teamStats); } return(allTeamsStatistics); }
private WinDrawLossViewModel ParseGuestScores(List <Match> matches) { WinDrawLossViewModel stats = new WinDrawLossViewModel() { Win = 0, Draw = 0, Loss = 0 }; foreach (Match match in matches) { if (IsMatchFinishedRegulary(match)) { if (match.HostScore == match.GuestScore) { stats.Draw += 1; } else if (match.HostScore < match.GuestScore) { stats.Win += 1; } else { stats.Loss += 1; } } } return(stats); }