Exemple #1
0
        public KFRankData HRankData(int rankType, int roleID)
        {
            KFRankData result;

            lock (this._lockRank)
            {
                if (this._rankTopDic.ContainsKey(rankType))
                {
                    List <KFRankData> list = this._rankTopDic[rankType];
                    KFRankData        data = list.Find((KFRankData _x) => _x != null && _x.RoleID == roleID);
                    if (data != null)
                    {
                        return(data);
                    }
                }
                if (this._rankDic.ContainsKey(rankType))
                {
                    Dictionary <int, KFRankData> dic = this._rankDic[rankType];
                    if (dic.ContainsKey(roleID))
                    {
                        return(dic[roleID]);
                    }
                }
                else
                {
                    this._rankDic.Add(rankType, new Dictionary <int, KFRankData>());
                }
                IAllyService kuaFuService = this.GetKuaFuService(false);
                if (null == kuaFuService)
                {
                    result = null;
                }
                else
                {
                    try
                    {
                        KFRankData data = kuaFuService.RankRole(this._ClientInfo.ServerId, rankType, roleID);
                        if (data != null)
                        {
                            this._rankDic[rankType].Add(roleID, data);
                        }
                        return(data);
                    }
                    catch (Exception ex)
                    {
                        this.ResetKuaFuService();
                    }
                    result = null;
                }
            }
            return(result);
        }