Ejemplo n.º 1
0
        private async Task PopulateLeagueInfo(List <Rank> ranks, int season, GateWay gateWay, GameMode gameMode)
        {
            var leagues = (await _rankRepository.LoadLeagueConstellation(season))
                          .Where(l => l.Gateway == gateWay && l.GameMode == gameMode)
                          .SelectMany(l => l.Leagues)
                          .ToDictionary(l => l.Id);

            foreach (var rank in ranks)
            {
                if (leagues.TryGetValue(rank.League, out var league))
                {
                    rank.LeagueName     = league.Name;
                    rank.LeagueDivision = league.Division;
                    rank.LeagueOrder    = league.Order;
                }
            }
        }
Ejemplo n.º 2
0
        public async Task <List <PlayerGameModeStatPerGateway> > LoadPlayerStatsWithRanks(
            string battleTag,
            GateWay gateWay,
            int season)
        {
            var player = await _playerRepository.LoadGameModeStatPerGateway(battleTag, gateWay, season);

            var leaguesOfPlayer = await _rankRepository.LoadPlayerOfLeague(battleTag, season);

            var allLeagues = await _rankRepository.LoadLeagueConstellation(season);

            foreach (var rank in leaguesOfPlayer)
            {
                PopulateLeague(player, allLeagues, rank);
            }

            return(player);
        }
Ejemplo n.º 3
0
        public async Task <List <PlayerGameModeStatPerGateway> > LoadPlayerStatsWithRanks(
            string battleTag,
            GateWay gateWay,
            int season)
        {
            var playerGameModeStats = await _playerRepository.LoadGameModeStatPerGateway(battleTag, gateWay, season);

            var leaguesOfPlayer = await _rankRepository.LoadPlayerOfLeague(battleTag, season);

            var allLeagues = await _rankRepository.LoadLeagueConstellation(season);

            foreach (var rank in leaguesOfPlayer)
            {
                PopulateLeague(playerGameModeStats, allLeagues, rank);
            }

            PopulateQuantiles(playerGameModeStats, season);

            return(playerGameModeStats.OrderByDescending(r => r.RankingPoints).ToList());
        }
        public async Task <Clan> LoadClan(string clanId)
        {
            var clan = await _clanRepository.LoadClan(clanId);

            var seasons = await _rankRepository.LoadSeasons();

            var season = seasons.Max(s => s.Id);
            var leagueConstellation = await _rankRepository.LoadLeagueConstellation(season);

            var list = new List <string>();

            list.AddRange(clan.Members);
            list.AddRange(clan.Shamans);
            list.Add(clan.ChiefTain);
            var ranksFromClan = await _rankRepository.LoadRanksForPlayers(list, season);

            PopulateLeague(ranksFromClan, leagueConstellation);

            clan.Ranks = ranksFromClan.ToList();

            return(clan);
        }
        public async Task <IActionResult> GetLeagueConstellation(int season)
        {
            var leagues = await _rankRepository.LoadLeagueConstellation(season);

            return(Ok(leagues));
        }