public async Task PlayerMultipleWinRecords()
        {
            var playerRepository     = new PlayerRepository(MongoClient);
            var personalSettingsRepo = new PersonalSettingsRepository(MongoClient);

            var handler  = new PlayerOverallStatsHandler(playerRepository, personalSettingsRepo);
            var handler2 = new PlayerGameModeStatPerGatewayHandler(playerRepository);
            var handler3 = new PlayerRaceStatPerGatewayHandler(playerRepository);

            var ev = TestDtoHelper.CreateFakeEvent();

            ev.match.gameMode             = GameMode.GM_1v1;
            ev.match.gateway              = GateWay.Europe;
            ev.match.season               = 1;
            ev.match.players[0].battleTag = "peter#123";
            ev.match.players[0].battleTag = "peter#123";
            ev.match.players[0].race      = Race.HU;
            ev.match.players[1].race      = Race.OC;

            for (int i = 0; i < 100; i++)
            {
                await handler.Update(ev);

                await handler2.Update(ev);

                await handler3.Update(ev);
            }

            var playerLoaded = await playerRepository.LoadRaceStatPerGateway("peter#123", Race.HU, GateWay.Europe, 1);

            var playerLoadedStats = await playerRepository.LoadGameModeStatPerGateway("peter#123", GateWay.Europe, 1);

            Assert.AreEqual(100, playerLoadedStats.Single().Wins);
            Assert.AreEqual(100, playerLoaded.Wins);
        }
        public async Task PlayerStats_PlayerParticipatedRaceIsCorrect()
        {
            var playerRepository       = new PlayerRepository(MongoClient);
            var playerHeroStatsHandler = new PlayerOverallStatsHandler(playerRepository);

            var matchFinishedEvent1 = TestDtoHelper.CreateFakeEvent();

            matchFinishedEvent1.match.season = 0;
            var matchFinishedEvent2 = TestDtoHelper.CreateFakeEvent();

            matchFinishedEvent2.match.season = 1;
            var matchFinishedEvent3 = TestDtoHelper.CreateFakeEvent();

            matchFinishedEvent3.match.season = 1;

            await playerHeroStatsHandler.Update(matchFinishedEvent1);

            await playerHeroStatsHandler.Update(matchFinishedEvent2);

            await playerHeroStatsHandler.Update(matchFinishedEvent3);

            var enemyStatsVsPlayerRace = await playerRepository.LoadPlayerProfile(matchFinishedEvent1.match.players[0].battleTag);

            Assert.AreEqual(2, enemyStatsVsPlayerRace.ParticipatedInSeasons.Count);
            Assert.AreEqual(1, enemyStatsVsPlayerRace.ParticipatedInSeasons[0].Id);
            Assert.AreEqual(0, enemyStatsVsPlayerRace.ParticipatedInSeasons[1].Id);
        }