public void CreateClearTrigger(Ranking _this, DateTime triggerTime, int autoInterval) { RankServerControl.Timer.CreateTrigger(triggerTime, _this.Clear, autoInterval); }
//获得排行榜已排次序的数量 public int GetRankListCount(Ranking _this) { return(_this.RankUUIDList.Count); }
//排序 public List <KeyValuePair <ulong, DBRank_One> > Sort(Ranking _this, bool IsMustDo = false) { if (!IsMustDo) { if (_this.RankType == 3) { _this.Dirty = false; return(null); } if (!_this.Dirty) { return(null); } } var sortArray = _this.DBRankCache.OrderBy(item => item.Value.Value).ToList(); var count = sortArray.Count(); var nowCount = count; if (_this.MaxRankMemberCount < count) { //移除多余的 nowCount = _this.MaxRankMemberCount; var delCount = count - _this.MaxRankMemberCount; for (var i = 0; i < delCount; ++i) { RemoveOne(_this, sortArray[0].Value); sortArray.Remove(sortArray[0]); count--; } } var listCout = _this.RankUUIDList.Count; if (listCout > nowCount) { for (var i = nowCount; i < listCout; i++) { _this.RankUUIDList.RemoveAt(nowCount); } } else { for (var i = listCout; i < nowCount; i++) { _this.RankUUIDList.Add(0); } } //RankUUIDIndex.Clear(); _this.SaveOldValueByUUID.Clear(); foreach (var rankOne in sortArray) { var rank = _this.DBRankCache[rankOne.Value.Guid]; _this.RankUUIDList[count - 1] = rankOne.Value.Guid; //RankUUIDIndex[count] = rankOne.Value.Guid; rank.OldRank = rankOne.Value.Rank; rank.Rank = count; _this.SaveOldValueByUUID[rankOne.Key] = rankOne.Value.Value; count--; if (_this.RankType == 3) { rank.Value = 1000000 / rank.Rank; } } _this.Dirty = false; return(sortArray); }
//获得排行榜人数 public int GetRankCount(Ranking _this) { return(_this.DBRankCache.Count); }
public void FlushAll(Ranking _this) { SortAndSave(_this); }