Exemple #1
0
        public MatchResult Handle(MatchRequest request)
        {
            if (request.OneTeam)
            {
                LocalizedString winByDefault  = new LocalizedString("WinByDefault", "Won by default, only 1 team participated in the match");
                var             OneTeamresult = _matchResultFactory.CreateResult((request.teams[0], 3, null, 0), winByDefault);
                return(OneTeamresult);
            }
            Random r = new Random();

            (Team hometeam, int score, Team otherteam, int awayscore)matchResult = (null, -1, null, -1);  // 'Initialize'
            for (int i = 1; i < request.teams.Count; i++)
            {
                var outcomerequest = CalculatePotentialOutcomeFactory.CreatePotentialOutcomeRequest(request.teams[0], request.teams[i], request.leagueStats.Homegoals, request.leagueStats.Homematches, request.leagueStats.Awaygoals, request.leagueStats.Awaymatches);
                var outcomeResult  = _outcomeHandler.Handle(outcomerequest); //CalculatePotentialOutcomes(r, homeTeamStrength, i);
                // randomize potential outcome
                if (outcomeResult.PotentialOutcomes.Count == 0)
                {
                    outcomeResult.PotentialOutcomes.Add((request.teams[0], 0, request.teams[i], 0));                                             // in case no found, add "0-0" to potential outcomes
                }
                matchResult = outcomeResult.PotentialOutcomes[r.Next(0, outcomeResult.PotentialOutcomes.Count - 1)];
            }

            LocalizedString noRemarks = new LocalizedString("NoRemarks", string.Empty);

            var result = _matchResultFactory.CreateResult(matchResult, noRemarks);

            return(result);
        }