Exemplo n.º 1
0
        public async Task <IEnumerable <MatchMadeTeam> > MatchTeams(IEnumerable <string> guardianIds, int teamSize)
        {
            var guardians = new List <GuardianSnapshot>();

            foreach (var id in guardianIds)
            {
                var guardian = await _guardianRepository.GetGuardian(id);

                var guardianElo = await _guardianEloRepository.GetGuardianElo(id);

                var guardianEff = _guardianEfficiencyRepository.GetGuardianEfficiency(id);

                var snapshot = new GuardianSnapshot()
                {
                    Guardian           = guardian,
                    GuardianEfficiency = guardianEff.NewEfficiency,
                    GuardianElo        = guardianElo.NewElo
                };

                guardians.Add(snapshot);
            }

            var shuffledGuardians = _matchMakingRepository.ShuffleGuardiansList(guardians);
            var teams             = _matchMakingRepository.RandomizeTeams(shuffledGuardians, teamSize);

            teams = _matchMakingRepository.Anneal(teams);

            return(teams);
        }
        private async Task <IEnumerable <Guardian> > GetGuardiansForTeam(MatchTeam team)
        {
            var guardians = new List <Guardian>();

            foreach (var result in team.GuardianMatchResults)
            {
                var guardian = await _guardianRepository.GetGuardian(result.GuardianId);

                guardians.Add(guardian);
            }

            return(guardians);
        }
Exemplo n.º 3
0
 public async Task <Guardian> GetGuardian(string guardianId)
 {
     return(await _guardianRepository.GetGuardian(guardianId));
 }