Esempio n. 1
0
        public async Task LoadAndSave()
        {
            var rankRepository   = new RankRepository(MongoClient);
            var playerRepository = new PlayerRepository(MongoClient);

            var ranks = new List <Rank> {
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 12, 1456, GateWay.America, GameMode.GM_1v1, 0)
            };
            await rankRepository.InsertRanks(ranks);

            var player = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.America, GameMode.GM_1v1, 0);

            player.RecordWin(true, 1234);
            await playerRepository.UpsertPlayerOverview(player);

            await playerRepository.UpsertPlayerOverview(player);

            await playerRepository.UpsertPlayerOverview(player);

            var playerLoaded = await rankRepository.LoadPlayersOfLeague(1, 0, GateWay.America, GameMode.GM_1v1);

            Assert.AreEqual(1, playerLoaded.Count);
            Assert.AreEqual("0_peter#123@10_GM_1v1", playerLoaded[0].Players.First().Id);
            Assert.AreEqual(1, playerLoaded[0].Players.First().Wins);
            Assert.AreEqual(12, playerLoaded[0].RankNumber);
            Assert.AreEqual(1456, playerLoaded[0].RankingPoints);
            Assert.AreEqual(0, playerLoaded[0].Players.First().Losses);
        }
Esempio n. 2
0
        public async Task LoadPlayersOfLeague_RaceBasedMMR()
        {
            var rankRepository   = new RankRepository(MongoClient);
            var playerRepository = new PlayerRepository(MongoClient);

            var ranks = new List <Rank>
            {
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 12, 1456, Race.HU, GateWay.Europe, GameMode.GM_1v1, 2),
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 8, 1456, Race.NE, GateWay.Europe, GameMode.GM_1v1, 2)
            };
            await rankRepository.InsertRanks(ranks);

            var player1 = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.Europe, GameMode.GM_1v1, 2, Race.HU);
            await playerRepository.UpsertPlayerOverview(player1);

            var player2 = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.Europe, GameMode.GM_1v1, 2, Race.NE);
            await playerRepository.UpsertPlayerOverview(player2);

            var playerLoaded = await rankRepository.LoadPlayersOfLeague(1, 2, GateWay.Europe, GameMode.GM_1v1);

            Assert.AreEqual(2, playerLoaded.Count);
        }
Esempio n. 3
0
        public async Task LoadAndSave_NotDuplicatingWhenGoingUp()
        {
            var rankRepository   = new RankRepository(MongoClient);
            var playerRepository = new PlayerRepository(MongoClient);

            var ranks1 = new List <Rank> {
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 12, 1456, GateWay.Europe, GameMode.GM_1v1, 0)
            };
            var ranks2 = new List <Rank> {
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 8, 1456, GateWay.Europe, GameMode.GM_1v1, 0)
            };
            await rankRepository.InsertRanks(ranks1);

            await rankRepository.InsertRanks(ranks2);

            var player = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.Europe, GameMode.GM_1v1, 0);
            await playerRepository.UpsertPlayerOverview(player);

            var playerLoaded = await rankRepository.LoadPlayersOfLeague(1, 0, GateWay.Europe, GameMode.GM_1v1);

            Assert.AreEqual(1, playerLoaded.Count);
            Assert.AreEqual(8, playerLoaded[0].RankNumber);
        }
Esempio n. 4
0
        public async Task SearchRanks_WithRaceSpecificRank_DifferentSeasons()
        {
            // Arrange
            var rankRepository   = new RankRepository(MongoClient);
            var playerRepository = new PlayerRepository(MongoClient);

            var ranks = new List <Rank>
            {
                //old one
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 2, 1000, null, GateWay.America, GameMode.GM_1v1, 1),

                //mmr based
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 2, 1000, Race.HU, GateWay.America, GameMode.GM_1v1, 2),
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 3, 2000, Race.NE, GateWay.America, GameMode.GM_1v1, 2)
            };
            await rankRepository.InsertRanks(ranks);

            var player1 = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.America, GameMode.GM_1v1, 1, null);

            player1.RecordWin(true, 1234);
            await playerRepository.UpsertPlayerOverview(player1);

            var player2 = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.America, GameMode.GM_1v1, 2, Race.HU);

            player2.RecordWin(true, 1234);
            await playerRepository.UpsertPlayerOverview(player2);

            var player3 = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.America, GameMode.GM_1v1, 2, Race.NE);

            player3.RecordWin(true, 1234);
            await playerRepository.UpsertPlayerOverview(player3);

            // Act
            var playerLoaded = await rankRepository.SearchPlayerOfLeague("ete", 1, GateWay.America, GameMode.GM_1v1);

            // Assert
            Assert.AreEqual(1, playerLoaded.Count);

            // Act
            var playerLoaded2 = await rankRepository.SearchPlayerOfLeague("ete", 2, GateWay.America, GameMode.GM_1v1);

            // Assert
            Assert.AreEqual(2, playerLoaded2.Count);
        }
Esempio n. 5
0
 public void SetValues()
 {
     RanksComboBox.ItemsSource         = RankRepository.GetAll();
     RanksComboBox.Text                = employee.Rank.rank1.ToString();
     FirstNameTextBox.Text             = employee.firstName;
     LastNameTextBox.Text              = employee.lastName;
     DateOfBirthDataPiker.SelectedDate = employee.dataOfBirth;
     PhoneNumberTextBox.Text           = employee.phoneNumber;
     AddresTextBox.Text                = employee.address;
     HireDateDataPiker.SelectedDate    = employee.hireDate;
 }
Esempio n. 6
0
 public EventService(EventManagerContext context, IHttpContextAccessor httpContextAccessor)
 {
     _context             = context;
     _httpContextAccessor = httpContextAccessor;
     Events        = new EventRepository(_context);
     EventSeries   = new EventSeriesRepository(_context);
     EventTypes    = new EventTypeRepository(_context);
     Ranks         = new RankRepository(_context);
     Users         = new UserRepository(_context);
     Registrations = new RegistrationRepository(_context);
     _currentUser  = Users.GetUserByLDAPName(_httpContextAccessor.HttpContext.User.Identity.Name.Split('\\')[1]);
 }
Esempio n. 7
0
        public async Task ReturnRanks_WhenPlayersHavePersonalSettingsConfigured_MustHaveCorrectPersonalSettings()
        {
            // Arrange
            var rankRepository             = new RankRepository(MongoClient, personalSettingsProvider);
            var playerRepository           = new PlayerRepository(MongoClient);
            var personalSettingsRepository = new PersonalSettingsRepository(MongoClient);
            var clanRepository             = new ClanRepository(MongoClient);
            var queryHandler = new RankQueryHandler(rankRepository, playerRepository, clanRepository);

            var ranks = new List <Rank> {
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 12, 1456, null, GateWay.America, GameMode.GM_1v1, 1)
            };
            await rankRepository.InsertRanks(ranks);

            var player = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.America, GameMode.GM_1v1, 1, null);

            player.RecordWin(true, 1234);
            await playerRepository.UpsertPlayerOverview(player);

            var playerStats = new PlayerOverallStats()
            {
                BattleTag = "peter#123",
            };
            await playerRepository.UpsertPlayer(playerStats);

            var settings = new PersonalSetting("peter#123")
            {
                ProfilePicture = new ProfilePicture()
                {
                    Race = AvatarCategory.HU, PictureId = 5
                },
                Country = "BG"
            };
            await personalSettingsRepository.Save(settings);

            // Act
            var playerLoaded = await queryHandler.LoadPlayersOfLeague(1, 1, GateWay.America, GameMode.GM_1v1);

            // Assert
            Assert.AreEqual(1, playerLoaded.Count);

            var playerRank = playerLoaded[0];

            Assert.AreEqual("1_peter#123@10_GM_1v1", playerRank.Players.First().Id);
            Assert.AreEqual(playerRank.PlayersInfo[0].SelectedRace, AvatarCategory.HU);
            Assert.AreEqual(playerRank.PlayersInfo[0].PictureId, 5);
            Assert.AreEqual(playerRank.PlayersInfo[0].Country, "BG");
        }
Esempio n. 8
0
        public async Task ReturnRanks_WithRaceSpecificRank()
        {
            // Arrange
            var rankRepository   = new RankRepository(MongoClient);
            var playerRepository = new PlayerRepository(MongoClient);
            var queryHandler     = new RankQueryHandler(rankRepository, playerRepository, new ClanRepository(MongoClient));

            var ranks = new List <Rank>
            {
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 2, 1000, Race.HU, GateWay.America, GameMode.GM_1v1, 2),
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 3, 2000, Race.NE, GateWay.America, GameMode.GM_1v1, 2)
            };
            await rankRepository.InsertRanks(ranks);

            var player1 = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.America, GameMode.GM_1v1, 2, Race.HU);

            player1.RecordWin(true, 1234);
            await playerRepository.UpsertPlayerOverview(player1);

            var player2 = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.America, GameMode.GM_1v1, 2, Race.NE);

            player2.RecordWin(true, 1234);
            await playerRepository.UpsertPlayerOverview(player2);

            // Act
            var playerLoaded = await queryHandler.LoadPlayersOfLeague(1, 2, GateWay.America, GameMode.GM_1v1);

            // Assert
            Assert.AreEqual(2, playerLoaded.Count);

            Assert.AreEqual("peter#123", playerLoaded[0].Player.PlayerIds.Single().BattleTag);
            Assert.AreEqual("peter#123", playerLoaded[1].Player.PlayerIds.Single().BattleTag);
        }
Esempio n. 9
0
        public async Task RaceBasedMMRUpdate()
        {
            var matchEventRepository = new MatchEventRepository(MongoClient);
            var rankRepository       = new RankRepository(MongoClient);
            var playerRepository     = new PlayerRepository(MongoClient);

            var matchFinishedEvent  = TestDtoHelper.CreateFakeEvent();
            var rankingChangedEvent = TestDtoHelper.CreateRankChangedEvent();

            matchFinishedEvent.match.players[0].battleTag = "peTer#123";
            matchFinishedEvent.match.players[0].race      = Race.NE;
            matchFinishedEvent.match.gameMode             = GameMode.GM_1v1;
            matchFinishedEvent.match.season  = 2;
            matchFinishedEvent.match.gateway = GateWay.America;

            rankingChangedEvent.ranks[0].battleTags = new List <string> {
                "peTer#123"
            };
            rankingChangedEvent.ranks[0].race = Race.NE;
            rankingChangedEvent.gateway       = GateWay.America;
            rankingChangedEvent.gameMode      = GameMode.GM_1v1;
            rankingChangedEvent.season        = 2;

            await InsertRankChangedEvent(rankingChangedEvent);

            await matchEventRepository.InsertIfNotExisting(matchFinishedEvent);

            var playOverviewHandler = new PlayOverviewHandler(playerRepository);
            await playOverviewHandler.Update(matchFinishedEvent);

            var rankHandler = new RankSyncHandler(rankRepository, matchEventRepository);

            await playOverviewHandler.Update(matchFinishedEvent);

            await rankHandler.Update();

            var rank = await rankRepository.SearchPlayerOfLeague("peT", 2, GateWay.America, GameMode.GM_1v1);

            Assert.AreEqual(1, rank.Count);
            Assert.AreEqual(Race.NE, rank[0].Race);
        }
Esempio n. 10
0
        public async Task LoadAndSave_NotFound()
        {
            var rankRepository   = new RankRepository(MongoClient);
            var playerRepository = new PlayerRepository(MongoClient);

            var ranks = new List <Rank> {
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 12, 1456, GateWay.Europe, GameMode.GM_1v1, 0)
            };
            await rankRepository.InsertRanks(ranks);

            var player = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.Europe, GameMode.GM_1v1, 0);
            await playerRepository.UpsertPlayerOverview(player);

            var playerLoaded = await rankRepository.LoadPlayersOfLeague(1, 0, GateWay.America, GameMode.GM_1v1);

            Assert.IsEmpty(playerLoaded);
        }
Esempio n. 11
0
        public async Task ReturnRanks_ClanGetsResolved()
        {
            // Arrange
            var rankRepository   = new RankRepository(MongoClient);
            var playerRepository = new PlayerRepository(MongoClient);
            var clanRepository   = new ClanRepository(MongoClient);
            var queryHandler     = new RankQueryHandler(rankRepository, playerRepository, clanRepository);

            var ranks = new List <Rank> {
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 12, 1456, GateWay.America, GameMode.GM_1v1, 1)
            };
            await rankRepository.InsertRanks(ranks);

            var player = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.America, GameMode.GM_1v1, 1);

            player.RecordWin(true, 1234);
            await playerRepository.UpsertPlayerOverview(player);

            var playerStats = new PlayerOverallStats()
            {
                BattleTag = "peter#123",
            };
            await playerRepository.UpsertPlayer(playerStats);

            await clanRepository.UpsertMemberShip(new ClanMembership { BattleTag = "peter#123", ClanId = "W3C" });

            // Act
            var playerLoaded = await queryHandler.LoadPlayersOfLeague(1, 1, GateWay.America, GameMode.GM_1v1);

            // Assert
            Assert.AreEqual(1, playerLoaded.Count);

            var playerRank = playerLoaded[0];

            Assert.AreEqual("W3C", playerRank.PlayersInfo.Single().ClanId);
        }
Esempio n. 12
0
        public async Task ReturnRanks_WhenPlayersDoNotHavePersonalSettingsConfigured_MustHaveNotThrowError()
        {
            // Arrange
            var rankRepository   = new RankRepository(MongoClient);
            var playerRepository = new PlayerRepository(MongoClient);
            var clanRepository   = new ClanRepository(MongoClient);
            var queryHandler     = new RankQueryHandler(rankRepository, playerRepository, clanRepository);

            var ranks = new List <Rank> {
                new Rank(new List <string> {
                    "peter#123"
                }, 1, 12, 1456, GateWay.America, GameMode.GM_1v1, 1)
            };
            await rankRepository.InsertRanks(ranks);

            var player = PlayerOverview.Create(new List <PlayerId> {
                PlayerId.Create("peter#123")
            }, GateWay.America, GameMode.GM_1v1, 1);

            player.RecordWin(true, 1234);
            await playerRepository.UpsertPlayerOverview(player);

            var playerStats = new PlayerOverallStats()
            {
                BattleTag = "peter#123",
            };
            await playerRepository.UpsertPlayer(playerStats);

            // Act
            var playerLoaded = await queryHandler.LoadPlayersOfLeague(1, 1, GateWay.America, GameMode.GM_1v1);

            // Assert
            Assert.AreEqual(1, playerLoaded.Count);

            var playerRank = playerLoaded[0];

            Assert.AreEqual("1_peter#123@10_GM_1v1", playerRank.Players.First().Id);
        }
Esempio n. 13
0
        public async Task RankIntegrationWithMultipleIds()
        {
            var matchEventRepository = new MatchEventRepository(MongoClient);
            var rankRepository       = new RankRepository(MongoClient, personalSettingsProvider);
            var playerRepository     = new PlayerRepository(MongoClient);

            var matchFinishedEvent  = TestDtoHelper.CreateFakeEvent();
            var rankingChangedEvent = TestDtoHelper.CreateRankChangedEvent();

            matchFinishedEvent.match.players[0].battleTag = "peTer#123";
            matchFinishedEvent.match.gameMode             = GameMode.GM_1v1;
            matchFinishedEvent.match.gateway = GateWay.America;

            rankingChangedEvent.ranks[0].battleTags = new List <string> {
                "peTer#123"
            };
            rankingChangedEvent.gateway  = GateWay.America;
            rankingChangedEvent.gameMode = GameMode.GM_1v1;

            await InsertRankChangedEvent(rankingChangedEvent);

            await matchEventRepository.InsertIfNotExisting(matchFinishedEvent);

            var playOverviewHandler = new PlayOverviewHandler(playerRepository);
            await playOverviewHandler.Update(matchFinishedEvent);

            var rankHandler = new RankSyncHandler(rankRepository, matchEventRepository);

            await playOverviewHandler.Update(matchFinishedEvent);

            await rankHandler.Update();

            var rank = await rankRepository.SearchPlayerOfLeague("peT", 0, GateWay.America, GameMode.GM_1v1);

            Assert.AreEqual(1, rank.Count);
        }
Esempio n. 14
0
 public RankBusiness()
 {
     rankRepository = new RankRepository();
 }
Esempio n. 15
0
 public RankService()
 {
     _rankRepository     = new RankRepository();
     _questionRepository = new QuestionRepository();
     _answerRepository   = new AnswerRepository();
 }