コード例 #1
0
        /**
         * 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);
        }
コード例 #2
0
        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);
        }