コード例 #1
0
        public async Task <List <PvpLeaderboardRow> > GetLeaderboardsAsync(PvpBracket pvpBracket = PvpBracket.Bracket2v2)
        {
            string query = $"/wow/leaderboard/{pvpBracket.GetEnumValue()}";

            var results = await reader.GetAsync <Dictionary <string, List <PvpLeaderboardRow> > >(query);

            return(results["rows"]);
        }
コード例 #2
0
ファイル: WowClient.cs プロジェクト: Xenophik/WContact
        /// <summary>
        ///   Begins an async operation that gets the top ranked rated PVP players
        /// </summary>
        /// <param name="type">The PVP bracket to fetch</param>
        /// <returns> The state of the request </returns>
        public Task <PvpLeaderboardResponse> GetPvpLeaderboardAsync(PvpBracket type)
        {
            string strType = EnumHelper <PvpBracket> .EnumToString(type);

            return(GetAsync <PvpLeaderboardResponse>("/api/wow/leaderboard/" + strType, null));
        }
コード例 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="locale"></param>
        /// <param name="region"></param>
        /// <param name="token"></param>
        /// <param name="pvpSeasonId"></param>
        /// <param name="pvpBracket"></param>
        /// <returns></returns>
        public static async Task <PvpLeaderboard> GetPvpLeaderboardApi(Base.Locale locale, Base.Region region, string token, int pvpSeasonId, PvpBracket pvpBracket)
        {
            string clientString = $"https://{region.ToDescriptionString()}.api.blizzard.com/data/wow/pvp-season/{pvpSeasonId}/pvp-leaderboard/{pvpBracket.ToDescriptionString()}?namespace=dynamic-{region.ToDescriptionString()}&locale={locale.ToDescriptionString()}&access_token={token}";

            return(await Util.RequestHandler.ParseJson <PvpLeaderboard>(clientString, token));
        }
コード例 #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="pvpSeasonId"></param>
 /// <param name="pvpBracket"></param>
 /// <returns></returns>
 public static async Task <PvpLeaderboard> GetPvpLeaderboardApi(int pvpSeasonId, PvpBracket pvpBracket)
 {
     return(await GetPvpLeaderboardApi(Settings.Locale, Settings.Region, Settings.Token, pvpSeasonId, pvpBracket));
 }
コード例 #5
0
ファイル: PvpTests.cs プロジェクト: Xenophik/WContact
        /// <summary>
        /// Leader boards test
        /// </summary>
        /// <param name="bracket"></param>
        private void TestPvPLeaderboard(PvpBracket bracket)
        {
            var client   = new WowClient(TestConstants.TestRegion, "en-gb");
            var response = client.GetPvpLeaderboardAsync(bracket).Result;

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.Leaderboard);
            Assert.IsNotNull(response.ToString());
            Assert.IsNotNull(new PvpLeaderboardResponse().ToString());
            Assert.IsTrue(response.Leaderboard.Count > 0);

            var first = response.Leaderboard[0];

            Assert.IsNotNull(first.ToString());
            Assert.IsNotNull(first.Name);
            Assert.IsTrue(first.Rating > 0);
            Assert.IsNotNull(first.Name);
            Assert.IsTrue(first.Ranking > 0);
            Assert.IsNotNull(first.RealmName);
            Assert.IsNotNull(first.RealmSlug);

            CharacterPvpBracketInformation info;
            var chr = client.GetCharacterAsync(first.RealmName, first.Name, CharacterFields.Pvp).Result;

            Assert.IsNotNull(chr.Pvp);
            Assert.IsNotNull(chr.Pvp.Brackets);


            switch (bracket)
            {
            case PvpBracket.Arena2v2:
                info = chr.Pvp.Brackets.Arena2v2;
                break;

            case PvpBracket.Arena3v3:
                info = chr.Pvp.Brackets.Arena3v3;
                break;

            case PvpBracket.Arena5v5:
                info = chr.Pvp.Brackets.Arena5v5;
                break;

            case PvpBracket.RatedBattleground:
                info = chr.Pvp.Brackets.RatedBattleground;
                break;

            default:
                info = null;
                break;
            }

            Assert.IsNotNull(info);
            Assert.AreEqual(info.Rating, first.Rating);
            Assert.AreEqual(info.SeasonWins, first.SeasonWins);
            Assert.AreEqual(info.SeasonLosses, first.SeasonLosses);
            Assert.AreEqual(info.WeeklyLosses, first.WeeklyLosses);
            Assert.AreEqual(info.WeeklyWins, first.WeeklyWins);

            Assert.AreEqual(info.WeeklyLosses + info.WeeklyWins, info.WeeklyPlayed);
            Assert.AreEqual(info.SeasonLosses + info.SeasonWins, info.SeasonPlayed);

            Assert.AreEqual(bracket, info.PvpBracket);
            Assert.AreEqual(1, first.Ranking);
        }