RankProvider.cs 1.2 KB
Newer Older
A
Anran Zhang 已提交
1 2 3
// Copyright (c) Richasy. All rights reserved.

using System.Collections.Generic;
R
Richasy 已提交
4
using System.Linq;
A
Anran Zhang 已提交
5
using System.Threading.Tasks;
R
Richasy 已提交
6
using Bilibili.App.Show.V1;
A
Anran Zhang 已提交
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
using Richasy.Bili.Lib.Interfaces;
using static Richasy.Bili.Models.App.Constants.ServiceConstants;

namespace Richasy.Bili.Lib.Uwp
{
    /// <summary>
    /// 提供排行榜相关的数据操作.
    /// </summary>
    public partial class RankProvider : IRankProvider
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="RankProvider"/> class.
        /// </summary>
        /// <param name="httpProvider">网络操作工具.</param>
        public RankProvider(IHttpProvider httpProvider)
        {
            this._httpProvider = httpProvider;
        }

        /// <inheritdoc/>
R
Richasy 已提交
27
        public async Task<List<RankItem>> GetRankDetailAsync(int partitionId)
A
Anran Zhang 已提交
28
        {
R
Richasy 已提交
29 30
            var rankRequst = new RankRegionResultReq() { Rid = partitionId };
            var request = await _httpProvider.GetRequestMessageAsync(Api.Rank.RankingGRPC, rankRequst);
A
Anran Zhang 已提交
31
            var response = await _httpProvider.SendAsync(request);
R
Richasy 已提交
32 33
            var data = await _httpProvider.ParseAsync(response, RankListReply.Parser);
            return data.Items.ToList();
A
Anran Zhang 已提交
34 35 36
        }
    }
}