public async Task Update() { var events = await _matchEventRepository.CheckoutForRead(); var ranks = events.SelectMany(changedEvent => changedEvent.ranks .OrderByDescending(r => r.rp) .Select((r, i) => new Rank(r.battleTags, changedEvent.league, i + 1, (int)r.rp, changedEvent.gateway, changedEvent.gameMode, changedEvent.season)).ToList()).ToList(); await _rankRepository.InsertRanks(ranks); }
public async Task LoadClan_PopulateRanks() { var clan = await CreateFoundedClanForTest(); await _rankRepository.UpsertSeason(new Season(0)); await _rankRepository.UpsertSeason(new Season(1)); await _rankRepository.InsertRanks(new List <Rank> { new Rank(new List <string> { clan.Members[0] }, 1, 5, 1500, null, GateWay.Europe, GameMode.GM_1v1, 1) }); await _rankRepository.InsertLeagues(new List <LeagueConstellation> { new LeagueConstellation(1, GateWay.Europe, GameMode.GM_1v1, new List <League> { new League(1, 2, "Wood", 5) }) }); var playerRepository = new PlayerRepository(MongoClient); await playerRepository.UpsertPlayerOverview(PlayerOverview.Create(new List <PlayerId> { PlayerId.Create(clan.Members[0]) }, GateWay.Europe, GameMode.GM_1v1, 1, null)); var clanLoaded = await _handler.LoadClan(clan.ClanId); Assert.AreEqual(1, clanLoaded.Ranks.First().League); Assert.AreEqual(2, clanLoaded.Ranks.First().LeagueOrder); Assert.AreEqual("Wood", clanLoaded.Ranks.First().LeagueName); Assert.AreEqual(5, clanLoaded.Ranks.First().LeagueDivision); }