コード例 #1
0
        /// <summary>
        /// 将IDataReader的当前记录读取到PenaltykickManagerEntity 对象
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public PenaltyKickRankEntity LoadSingleRow1(IDataReader reader)
        {
            var obj = new PenaltyKickRankEntity();

            obj.ManagerId       = (System.Guid)reader["ManagerId"];
            obj.Name            = (System.String)reader["Name"];
            obj.TotalScore      = (System.Int32)reader["TotalScore"];
            obj.Rank            = (System.Int32)reader["Rank"];
            obj.ScoreChangeTime = (System.DateTime)reader["ScoreChangeTime"];

            return(obj);
        }
コード例 #2
0
        /// <summary>
        /// 更新排名
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public MessageCode UpdateRank(PenaltykickManagerEntity info)
        {
            if (info == null)
            {
                return(MessageCode.Success);
            }
            PenaltyKickRankEntity entity = null;

            if (_rankDic.ContainsKey(info.ManagerId))
            {
                entity = _rankDic[info.ManagerId];
                entity.ScoreChangeTime = info.ScoreChangeTime;
                entity.TotalScore      = info.TotalScore;
            }
            else
            {
                var manager = ManagerCore.Instance.GetManager(info.ManagerId);
                if (manager == null)
                {
                    return(MessageCode.NbParameterError);
                }
                entity                 = new PenaltyKickRankEntity();
                entity.ManagerId       = info.ManagerId;
                entity.Name            = manager.Name;
                entity.ScoreChangeTime = info.ScoreChangeTime;
                entity.TotalScore      = info.TotalScore;
                _rankDic.TryAdd(info.ManagerId, entity);
            }
            var rankList = _rankDic.Values.OrderByDescending(r => r.TotalScore).ToList();
            var dic      = new ConcurrentDictionary <Guid, PenaltyKickRankEntity>();

            for (int i = 0; i < rankList.Count; i++)
            {
                if (i >= 100)
                {
                    break;
                }
                rankList[i].Rank = i + 1;
                if (!dic.ContainsKey(rankList[i].ManagerId))
                {
                    dic.TryAdd(rankList[i].ManagerId, rankList[i]);
                }
            }
            _rankDic = dic;
            return(MessageCode.Success);
        }