Пример #1
0
        /// <summary>
        /// 添加SR基础数据
        /// </summary>
        /// <returns></returns>
        public async Task <MResponse> AsyncSRData()
        {
            MRankInfo srRankInfo = (await _steamBLL.GetRankScore(new[] { CurrentUser.RankID })).FirstOrDefault();

            if (srRankInfo == null)
            {
                bool hasSR = (await _steamBLL.GetOwnedGames(CurrentUser.PlatformID))?.OwnedGames?.Any(x => x.AppId == 207140) ?? false;
                if (!hasSR)
                {
                    return(MResponse.Fail("此账号尚未拥有SpeedRunners游戏"));
                }
                srRankInfo.RankType = 2;
            }
            else
            {
                srRankInfo.RankType     = 1;
                srRankInfo.OldRankScore = srRankInfo.RankScore;
            }
            BeginDb(DAL =>
            {
                DAL.UpdateRankInfo(srRankInfo, true);
                if (DAL.ExistRankLog(CurrentUser.PlatformID))
                {
                    return;
                }
                // 添加RankLog
                MRankLog rankLog = new MRankLog
                {
                    PlatformID = CurrentUser.PlatformID,
                    RankScore  = srRankInfo.RankScore.Value,
                };
                DAL.AddRankLog(rankLog);
            });
            return(MResponse.Success());
        }
Пример #2
0
        /// <summary>
        /// 初始化用户数据
        /// </summary>
        /// <returns></returns>
        public async Task InitUserData()
        {
            bool exist = true;

            BeginDb(DAL =>
            {
                exist = DAL.ExistRankInfo(CurrentUser.PlatformID);
            });
            // 存在初始数据
            if (exist)
            {
                return;
            }
            // 获取用户信息
            MRankInfo          srRankInfo    = (await _steamBLL.GetRankScore(new[] { CurrentUser.RankID })).FirstOrDefault();
            PlayerSummaryModel playerSummary = await _steamBLL.GetPlayerSummary(CurrentUser.PlatformID);

            MRankInfo rankInfo = new MRankInfo
            {
                PlatformID  = playerSummary.SteamId.ToString(),
                RankID      = CurrentUser.RankID,
                PersonaName = playerSummary.Nickname,
                AvatarS     = playerSummary.AvatarUrl,
                AvatarM     = playerSummary.AvatarMediumUrl,
                AvatarL     = playerSummary.AvatarFullUrl,
                State       = (int)playerSummary.UserStatus
            };
            RecentlyPlayedGamesResultModel playedGames = await _steamBLL.GetRecentlyPlayedGames(CurrentUser.PlatformID);

            BeginDb(DAL =>
            {
                // 没有SR
                if (srRankInfo == null)
                {
                    DAL.AddRankInfo(rankInfo);
                    return;
                }
                int weekPlayTime = (int)(playedGames.RecentlyPlayedGames.FirstOrDefault(x => x.AppId == 207140)?.Playtime2Weeks ?? 0);
                // 添加RankInfo
                rankInfo.RankType     = 1;
                rankInfo.RankCount    = srRankInfo.RankCount;
                rankInfo.RankScore    = srRankInfo.RankScore;
                rankInfo.OldRankScore = srRankInfo.RankScore;
                rankInfo.RankLevel    = srRankInfo.RankLevel;
                rankInfo.WeekPlayTime = weekPlayTime;
                DAL.Db.BeginTrans();
                DAL.AddRankInfo(rankInfo);
                // 添加RankLog
                MRankLog rankLog = new MRankLog
                {
                    PlatformID = CurrentUser.PlatformID,
                    RankScore  = srRankInfo.RankScore.Value,
                };
                DAL.AddRankLog(rankLog);
                DAL.Db.CommitTrans();
            });
        }
Пример #3
0
 public void AddRankLog(MRankLog rankLog)
 {
     Db.Insert("RankLog", rankLog, new[] { nameof(rankLog.Date) });
 }