public TianTiRankData GetRankingData() { TianTiRankData tianTiRankData; ITianTiService kuaFuService = GetKuaFuService(); if (null != kuaFuService) { try { DateTime modifyTime; lock (Mutex) { modifyTime = RankData.ModifyTime; } tianTiRankData = kuaFuService.GetRankingData(modifyTime); lock (Mutex) { if (tianTiRankData != null && tianTiRankData.ModifyTime > RankData.ModifyTime) { RankData = tianTiRankData; } tianTiRankData = new TianTiRankData(); tianTiRankData.ModifyTime = RankData.ModifyTime; tianTiRankData.MaxPaiMingRank = RankData.MaxPaiMingRank; if (RankData.TianTiRoleInfoDataList != null && RankData.TianTiRoleInfoDataList.Count > 0) { tianTiRankData.TianTiRoleInfoDataList = new List <TianTiRoleInfoData>(RankData.TianTiRoleInfoDataList); } if (RankData.TianTiMonthRoleInfoDataList != null && RankData.TianTiMonthRoleInfoDataList.Count > 0) { tianTiRankData.TianTiMonthRoleInfoDataList = new List <TianTiRoleInfoData>(RankData.TianTiMonthRoleInfoDataList); } return(tianTiRankData); } } catch (System.Exception ex) { ResetKuaFuService(); } } return(null); }
public TianTiRankData GetTianTiRankData(DateTime modifyTime) { TianTiRankData tianTiRankData = new TianTiRankData(); lock (this.Mutex) { tianTiRankData.ModifyTime = this.RankData.ModifyTime; tianTiRankData.MaxPaiMingRank = this.RankData.MaxPaiMingRank; if (modifyTime < this.RankData.ModifyTime && null != this.RankData.TianTiRoleInfoDataList) { tianTiRankData.TianTiRoleInfoDataList = new List <TianTiRoleInfoData>(this.RankData.TianTiRoleInfoDataList); } if (modifyTime < this.RankData.ModifyTime && null != this.RankData.TianTiMonthRoleInfoDataList) { tianTiRankData.TianTiMonthRoleInfoDataList = new List <TianTiRoleInfoData>(this.RankData.TianTiMonthRoleInfoDataList); } } return(tianTiRankData); }
public void TimerProc(object sender, EventArgs e) { bool modify = false; TianTiRankData tianTiRankData = TianTiClient.getInstance().GetRankingData(); lock (RuntimeData.Mutex) { if (tianTiRankData != null && tianTiRankData.ModifyTime > RuntimeData.ModifyTime) { modify = true; } } if (modify) { Dictionary <int, TianTiPaiHangRoleData> tianTiPaiHangRoleDataDict = new Dictionary <int, TianTiPaiHangRoleData>(); List <TianTiPaiHangRoleData> tianTiPaiHangRoleDataList = new List <TianTiPaiHangRoleData>(); Dictionary <int, TianTiPaiHangRoleData> tianTiMonthPaiHangRoleDataDict = new Dictionary <int, TianTiPaiHangRoleData>(); List <TianTiPaiHangRoleData> tianTiMonthPaiHangRoleDataList = new List <TianTiPaiHangRoleData>(); if (null != tianTiRankData.TianTiRoleInfoDataList) { foreach (var data in tianTiRankData.TianTiRoleInfoDataList) { TianTiPaiHangRoleData tianTiPaiHangRoleData; if (null != data.TianTiPaiHangRoleData) { tianTiPaiHangRoleData = DataHelper.BytesToObject <TianTiPaiHangRoleData>(data.TianTiPaiHangRoleData, 0, data.TianTiPaiHangRoleData.Length); } else { tianTiPaiHangRoleData = new TianTiPaiHangRoleData() { RoleId = data.RoleId }; } if (null != tianTiPaiHangRoleData) { tianTiPaiHangRoleData.RoleId = data.RoleId; tianTiPaiHangRoleData.DuanWeiRank = data.DuanWeiRank; tianTiPaiHangRoleDataDict[tianTiPaiHangRoleData.RoleId] = tianTiPaiHangRoleData; if (tianTiPaiHangRoleDataList.Count < RuntimeData.MaxDayPaiMingListCount) { tianTiPaiHangRoleDataList.Add(tianTiPaiHangRoleData); } } } } if (null != tianTiRankData.TianTiMonthRoleInfoDataList) { foreach (var data in tianTiRankData.TianTiMonthRoleInfoDataList) { TianTiPaiHangRoleData tianTiPaiHangRoleData; if (null != data.TianTiPaiHangRoleData) { tianTiPaiHangRoleData = DataHelper.BytesToObject <TianTiPaiHangRoleData>(data.TianTiPaiHangRoleData, 0, data.TianTiPaiHangRoleData.Length); } else { tianTiPaiHangRoleData = new TianTiPaiHangRoleData() { RoleId = data.RoleId }; } if (null != tianTiPaiHangRoleData) { tianTiPaiHangRoleData.RoleId = data.RoleId; tianTiPaiHangRoleData.DuanWeiRank = data.DuanWeiRank; tianTiMonthPaiHangRoleDataDict[tianTiPaiHangRoleData.RoleId] = tianTiPaiHangRoleData; if (tianTiMonthPaiHangRoleDataList.Count < RuntimeData.MaxMonthPaiMingListCount) { tianTiMonthPaiHangRoleDataList.Add(tianTiPaiHangRoleData); } } } } lock (RuntimeData.Mutex) { RuntimeData.ModifyTime = tianTiRankData.ModifyTime; RuntimeData.MaxPaiMingRank = tianTiRankData.MaxPaiMingRank; RuntimeData.TianTiPaiHangRoleDataDict = tianTiPaiHangRoleDataDict; RuntimeData.TianTiPaiHangRoleDataList = tianTiPaiHangRoleDataList; RuntimeData.TianTiMonthPaiHangRoleDataDict = tianTiMonthPaiHangRoleDataDict; RuntimeData.TianTiMonthPaiHangRoleDataList = tianTiMonthPaiHangRoleDataList; } } }