Ejemplo n.º 1
0
 public void ModifyRingPaihangData(RingRankingInfo data)
 {
     if (null != data)
     {
         lock (this.rankingDatas)
         {
             PlayerRingRankingData result = this.rankingDatas.Find((PlayerRingRankingData paiHang) => paiHang.roleId == data.nRoleID);
             if (null == result)
             {
                 if (this.rankingDatas.Count < RingPaiHangManager.RankingList_Max_Num)
                 {
                     this.rankingDatas.Add(data.getPlayerRingRankingData());
                 }
                 else if (this.CompareTo(data.getPlayerRingRankingData(), this.rankingDatas[this.rankingDatas.Count - 1]) < 1)
                 {
                     this.rankingDatas.RemoveAt(this.rankingDatas.Count - 1);
                     this.rankingDatas.Add(data.getPlayerRingRankingData());
                 }
             }
             else
             {
                 try
                 {
                     result.UpdateData(data);
                     this.rankingDatas.Sort();
                 }
                 catch (Exception ex)
                 {
                     DataHelper.WriteFormatExceptionLog(ex, "", false, false);
                 }
             }
         }
     }
 }
Ejemplo n.º 2
0
        private int CompareTo(PlayerRingRankingData A, PlayerRingRankingData B)
        {
            int result;

            if (A.GoodWillLevel == B.GoodWillLevel)
            {
                if (A.GoodWillStar == B.GoodWillStar)
                {
                    int nRet = string.Compare(A.RingAddTime, B.RingAddTime);
                    result = ((nRet < 0) ? -1 : ((nRet == 0) ? 0 : 1));
                }
                else
                {
                    result = ((A.GoodWillStar < B.GoodWillStar) ? 1 : -1);
                }
            }
            else
            {
                result = ((A.GoodWillLevel < B.GoodWillLevel) ? 1 : -1);
            }
            return(result);
        }