Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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;
                }
            }
        }