private void PopulateLeague( List <PlayerGameModeStatPerGateway> player, List <LeagueConstellation> allLeagues, Rank rank) { try { if (rank.RankNumber == 0) { return; } var leagueConstellation = allLeagues.Single(l => l.Gateway == rank.Gateway && l.Season == rank.Season && l.GameMode == rank.GameMode); var league = leagueConstellation.Leagues.Single(l => l.Id == rank.League); var gameModeStat = player.SingleOrDefault(g => g.Id == rank.Id); if (gameModeStat == null) { return; } gameModeStat.Division = league.Division; gameModeStat.LeagueOrder = league.Order; gameModeStat.RankingPoints = rank.RankingPoints; gameModeStat.LeagueId = rank.League; gameModeStat.Rank = rank.RankNumber; } catch (Exception e) { _trackingService.TrackException(e, $"A League was not found for {rank.Id} RN: {rank.RankNumber} LE:{rank.League}"); } }
private void PopulateLeague( List <Rank> ranks, List <LeagueConstellation> allLeagues) { foreach (var rank in ranks) { try { var leagueConstellation = allLeagues.Single(l => l.Gateway == rank.Gateway && l.Season == rank.Season && l.GameMode == rank.GameMode); var league = leagueConstellation.Leagues.Single(l => l.Id == rank.League); var rankOfPlayer = ranks.SingleOrDefault(g => g.Id == rank.Id); if (rankOfPlayer == null) { return; } rankOfPlayer.LeagueName = league.Name; rankOfPlayer.LeagueDivision = league.Division; rankOfPlayer.LeagueOrder = league.Order; rankOfPlayer.RankingPoints = rankOfPlayer.RankingPoints; rankOfPlayer.League = rankOfPlayer.League; rankOfPlayer.RankNumber = rankOfPlayer.RankNumber; } catch (Exception e) { _trackingService.TrackException(e, $"A League was not found for {rank.Id} RN: {rank.RankNumber} LE:{rank.League}"); } } }
private void PopulateLeague( List <PlayerGameModeStatPerGateway> player, List <LeagueConstellation> allLeagues, Rank rank) { try { if (rank.RankNumber == 0) { return; } var leagueConstellation = allLeagues.Single(l => l.Gateway == rank.Gateway && l.Season == rank.Season && l.GameMode == rank.GameMode); // There are some Ranks with Leagues that do not exist in // Season 0 LeagueConstellations, which we should ignore. // (Data integrity issue) var league = leagueConstellation.Season == 0 ? leagueConstellation.Leagues.SingleOrDefault(l => l.Id == rank.League) : leagueConstellation.Leagues.Single(l => l.Id == rank.League); if (league == null) { return; } var gameModeStat = player.SingleOrDefault(g => g.Id == rank.Id); if (gameModeStat == null) { return; } gameModeStat.Division = league.Division; gameModeStat.LeagueOrder = league.Order; gameModeStat.RankingPoints = rank.RankingPoints; gameModeStat.LeagueId = rank.League; gameModeStat.Rank = rank.RankNumber; } catch (Exception e) { _trackingService.TrackException(e, $"A League was not found for {rank.Id} RN: {rank.RankNumber} LE:{rank.League}"); } }
public async Task Update() { var lastVersion = await _versionRepository.GetLastVersion <T>(); var nextEvents = await _eventRepository.Load(lastVersion.Version, 1000); while (nextEvents.Any()) { foreach (var nextEvent in nextEvents) { try { if (lastVersion.IsStopped) { return; } if (nextEvent.match.season > lastVersion.Season) { await _versionRepository.SaveLastVersion <T>(lastVersion.Version, nextEvent.match.season); lastVersion = await _versionRepository.GetLastVersion <T>(); } // Skip the cancel events for now if (nextEvent.match.state != 3 && nextEvent.match.season == lastVersion.Season) { await _innerHandler.Update(nextEvent); } await _versionRepository.SaveLastVersion <T>(nextEvent.Id.ToString(), lastVersion.Season); } catch (Exception e) { _trackingService.TrackException(e, $"ReadmodelHandler: {typeof(T).Name} died on event{nextEvent.Id}"); throw; } } nextEvents = await _eventRepository.Load(nextEvents.Last().Id.ToString()); } }