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); }
public async Task <Guardian> GetGuardian(string guardianId) { return(await _guardianRepository.GetGuardian(guardianId)); }