public override bool TakeAction() { var cache = new ShareCacheStruct <UserRanking>(); var ranking = cache.Find(m => m.UserName == UserName); if (ranking == null) { var user = new GameUser() { UserId = (int)cache.GetNextNo(), NickName = UserName }; new PersonalCacheStruct <GameUser>().Add(user); ranking = new UserRanking(); ranking.UserID = user.UserId; ranking.UserName = UserName; ranking.Score = Score; if (!cache.Add(ranking)) { ErrorCode = Language.Instance.ErrorCode; ErrorInfo = string.Format("add fail, UserID {0} is exist.", ranking.UserID); return(false); } } else { ranking.UserName = UserName; ranking.Score = Score; } return(true); }
void UserRankingProcess(GameUser gu) { var cache = new ShareCacheStruct <UserRanking>(); var cacheRanking = cache.FindKey(gu.UserId); if (cacheRanking != null) { if (gu.Score > cacheRanking.Score) { cacheRanking.ModifyLocked(() => { cacheRanking.Score = gu.Score; }); } } else { // 只有>某个值的时候才加。保证10w数据即可。 if (gu.Score >= RankingScore.limitScoreAdd) { UserRanking ur = new UserRanking(); ur.UserID = gu.UserId; ur.Score = gu.Score; ur.UserName = gu.NickName; cache.Add(ur); } } }
public static bool saveRatinginDB(int ratingSubmit, int?star, string emailVomUser) { UserRanking userranking = new UserRanking(); try { using (var db = new CardGame_v2Entities()) { userranking.pack_id = ratingSubmit; userranking.rating = (short)star; User aktuellerUser = DAL.Logic.UserManager.GetUserByEmail(emailVomUser); userranking.user_id = aktuellerUser.ID; db.UserRanking.Add(userranking); db.SaveChanges(); } } catch (Exception) { return(false); } return(true); }
void doAdd_black(string parm) { string[] usridStr = parm.Split(','); for (int i = 0; i < usridStr.Length; ++i) { try { int UserId = int.Parse(usridStr[i]); var cache = new ShareCacheStruct <UserRanking>(); UserRanking ur = cache.FindKey(UserId); var personal = new PersonalCacheStruct <GameUser>(); GameUser gu = personal.FindKey(UserId.ToString()); var blackCache = new ShareCacheStruct <BlackListData>(); if (ur != null && gu != null) { blackCache.AddOrUpdate(UR2BLD(gu)); ConsoleLog.showNotifyInfo("add to black list id:" + UserId); } else { ConsoleLog.showErrorInfo(0, "not find userRanking id:" + UserId); } } catch (System.Exception e) { ConsoleLog.showErrorInfo(0, "black list exception:" + e.Message); } } }
public IEnumerable <UserRanking> GetRanking() { String asd = Configuration.GetConnectionString("DevConnection"); using (var conn = new SqlConnection(asd)) { SqlCommand cmd = new SqlCommand("Ranking", conn); cmd.CommandType = CommandType.StoredProcedure; SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(dt); foreach (DataRow dr in dt.Rows) { UserRanking obj = new UserRanking(); obj.rank = Int32.Parse(dr["Rank"].ToString()); obj.name = dr["Name"].ToString(); obj.surname = dr["Surname"].ToString(); obj.points = Int32.Parse(dr["Points"].ToString()); obj.image = dr["ImageB"].ToString(); RankingGet.Add(obj); } } return(RankingGet);//new string[] { "value1", "value2" }; }
void doAdd_black(string parm) { string[] usridStr = parm.Split(','); for (int i = 0; i < usridStr.Length; ++i) { try { int index = int.Parse(usridStr[i]); var cache = new ShareCacheStruct <UserRanking>(); List <UserRanking> lst = RankingFactorNew.Singleton().get <UserRanking>(typeof(RankingScore).ToString()); UserRanking ur = null; if (lst != null && lst.Count > index) { ur = lst[index]; } var blackCache = new ShareCacheStruct <BlackListData>(); if (ur != null) { blackCache.Add(UR2BLD(ur)); ConsoleLog.showNotifyInfo("add to black list id:" + UserId); } else { ConsoleLog.showErrorInfo(0, "not find userRanking id:" + UserId); } } catch (System.Exception e) { ConsoleLog.showErrorInfo(0, "black list exception:" + e.Message); } } }
Response1001Pack cbFunc(object obj) { List <object> objList = obj as List <object>; if (objList.Count != 2) { return(null); } List <UserRanking> rankingList = objList[1] as List <UserRanking>; // save to ....where.... var shareCache = new ShareCacheStruct <HistoryUserRanking>(); int num = (int)shareCache.GetNextNo(); var saveData = new HistoryUserRanking(); saveData.ID = num; // get data if (rankingList.Count >= 3) { UserRanking first = rankingList[0]; UserRanking second = rankingList[1]; UserRanking thrid = rankingList[2]; saveData.Items.Add(first); saveData.Items.Add(second); saveData.Items.Add(thrid); } shareCache.Add(saveData); return(null); }
private void AddUserRanking(string title, DateTime releaseDate, int rank) { using (TopTenRightNowContext context = new TopTenRightNowContext()) { Movie movie = AppCache.EntityCache.GetMovieByTitleAndRelease(title, releaseDate); if (movie == null) { movie = new Movie() { Title = title, ReleaseDate = releaseDate, RankingWeight = WeightFromRank(rank), LastRankedTime = DateTime.Now }; context.Movies.Add(movie); } UserRanking ranking = new UserRanking() { MovieId = movie.MovieId, RankingWeight = WeightFromRank(rank), RankedTime = DateTime.Now }; context.UserRankings.Add(ranking); context.SaveChanges(); } }
public override bool TakeAction() { var cache = new ShareCacheStruct <UserRanking>(); var ranking = cache.Find(m => m.UserName == requestPack.UserName); if (ranking == null) { var user = new GameUser() { UserId = (int)cache.GetNextNo(), NickName = requestPack.UserName }; new PersonalCacheStruct <GameUser>().Add(user); ranking = new UserRanking(); ranking.UserID = user.UserId; ranking.UserName = requestPack.UserName; ranking.Score = requestPack.Score; cache.Add(ranking); } else { ranking.UserName = requestPack.UserName; ranking.Score = requestPack.Score; } return(true); }
bool cbFuncRankingTotal(List <UserRankingTotal> rankingList) { if (null == rankingList || rankingList.Count == 0) { return(false); } // self UserRanking ur = new UserRanking(); var cache = new ShareCacheStruct <UserRankingTotal>(); UserRankingTotal selfURT = new UserRankingTotal(); UserRankingTotal findURT = cache.FindKey(requestPack.UserID); int selfPos = rankingList.FindIndex((o) => { if (o.UserID == requestPack.UserID) { return(true); } return(false); }); if (findURT == null) { selfURT.UserID = requestPack.UserID; selfURT.Total = -1; } else { selfURT.UserID = findURT.UserID; selfURT.Total = findURT.Total; } selfPos = formatPos(selfPos); responsePack.ItemsExScore.Add(new RankData() { pos = selfPos, UserName = selfPos + "," + selfURT.Total, Score = selfURT.Total, UserID = selfURT.UserID }); int maxSend = GameConfigMgr.Instance().getInt("rank_send_num_total", 10); var personCache = new PersonalCacheStruct <GameUser>(); var person = personCache.FindKey(selfURT.UserID.ToString()); for (int i = 0; i < rankingList.Count; ++i) { if (i >= maxSend) { break; } person = personCache.FindKey(rankingList[i].UserID.ToString()); if (null == person) { continue; } responsePack.ItemsExScore.Add(new RankData() { pos = formatPos(i), UserName = person.NickName, Score = rankingList[i].Total, UserID = rankingList[i].UserID }); } return(true); }
string processModify(string parm) { string info = ""; string[] p = parm.Split(','); string modifyWhich = p[0]; int index = int.Parse(p[1]) - 1; int score = int.Parse(p[2]); if ("ranking" == modifyWhich) { UserRanking ur = RankingFactorNew.Singleton().getRankingData <UserRanking, RankingScore>(index); if (null == ur) { info = "要修改的数据不存在"; } else { var cache = new ShareCacheStruct <UserRanking>(); UserRanking theUR = cache.FindKey(ur.UserID); theUR.ModifyLocked(() => { theUR.Score = score; }); info = "修改数据成功"; } } return(info); }
string processAdd(string parm) { string info = ""; string[] p = parm.Split(','); string addWhich = p[0]; string name = p[1]; int score = int.Parse(p[2]); if ("ranking" == addWhich) { var cache = new PersonalCacheStruct <GameUser>(); var urCache = new ShareCacheStruct <UserRanking>(); var gu = new GameUser(); gu.UserId = (int)cache.GetNextNo(); gu.NickName = name; gu.Score = score; gu.Identify = "identify_" + name; var ur = new UserRanking(); ur.UserID = gu.UserId; ur.UserName = name; ur.Score = score; cache.Add(gu); urCache.Add(ur); info = "增加排行榜数据成功"; } return(info); }
UserRanking copy(UserRanking ur) { UserRanking newUr = new UserRanking(); newUr.UserID = ur.UserID; newUr.Score = ur.Score; return(newUr); }
BlackListData UR2BLD(UserRanking ur) { BlackListData bd = new BlackListData(); bd.UserID = ur.UserID; bd.UserName = ur.UserName; bd.Score = ur.Score; return(bd); }
private int compareTo(UserRanking x, UserRanking y) { int result = y.Score - x.Score; if (result == 0) { result = y.UserID - x.UserID; } return(result); }
public async Task UpsertRanking(UserRanking ranking) { bool rankingExists = await Context.UserRankings.AnyAsync(r => r.UserId == ranking.UserId); if (rankingExists) { UpdateRanking(ranking); } else { await AddRanking(ranking); } }
void doAdd_delById(string parm) { string[] ids = parm.Split(','); for (int i = 0; i < ids.Length; ++i) { var urCache = new ShareCacheStruct <UserRanking>(); int id = int.Parse(ids[i]); UserRanking ur = urCache.FindKey(id); if (ur != null) { urCache.Delete(ur); // delete form cache and redis. } } RankingFactorNew.Singleton().Refresh <UserRanking>(typeof(RankingScore).ToString()); }
void getFake() { ConsoleLog.showNotifyInfo("get fake begin"); fakeLst = new List <UserRanking>(); int num = GameConfigMgr.Instance().getInt("rank_send_num", 10); float percent = GameConfigMgr.Instance().getInt("rankclear_perscent", 1) / 100.0f; int reduceScore = GameConfigMgr.Instance().getInt("rank_score_redice", 1); List <UserRanking> urlst = RankingFactorNew.Singleton().get <UserRanking>(typeof(RankingScore).ToString()); if (null == urlst) { TraceLog.WriteError("getFake()"); ConsoleLog.showErrorInfo(0, "getFake()"); return; } var rankCache = new ShareCacheStruct <UserRanking>(); var userCache = new PersonalCacheStruct <GameUser>(); for (int i = 0; i < urlst.Count; ++i) { if (i > num) { break; } UserRanking ur = urlst[i]; if (ur.Score > reduceScore) { ur.Score = (int)((float)urlst[i].Score * percent); UserRanking cacheUR = rankCache.FindKey(ur.UserID); if (null != cacheUR) { cacheUR.ModifyLocked(() => { cacheUR.Score = ur.Score; }); } GameUser cacheGU = userCache.FindKey(ur.UserID.ToString()); if (null != cacheGU) { cacheGU.ModifyLocked(() => { cacheGU.Score = ur.Score; }); } } fakeLst.Add(copy(ur)); } ConsoleLog.showNotifyInfo("getFake:" + fakeLst.Count); ConsoleLog.showNotifyInfo("get fake end"); }
public override bool TakeAction() { var cache = new ShareCacheStruct <UserRanking>(); var ranking = cache.Find(m => m.UserName == UserName); if (ranking == null) { ranking = new UserRanking(); ranking.UserID = (int)cache.GetNextNo(); ranking.UserName = UserName; ranking.Score = Score; cache.Add(ranking); } else { ranking.UserName = UserName; ranking.Score = Score; } return(true); }
void doAdd_delByIndex(string parm) { string[] p = parm.Split(','); int rankingIndex = int.Parse(p[0]) - 1; UserRanking ur = RankingFactorNew.Singleton().getRankingData <UserRanking, RankingScore>(rankingIndex); if (null != ur) { var cache = new ShareCacheStruct <UserRanking>(); cache.Delete(ur); var cachePersonal = new PersonalCacheStruct <GameUser>(); GameUser gu = cachePersonal.FindKey(ur.UserID.ToString()); var black = new ShareCacheStruct <BlackListData>(); BlackListData bld = UR2BLD(gu); black.AddOrUpdate(bld); } processSort("ranking"); }
string processDelete(string parm) { string info = ""; string[] p = parm.Split(','); string deleteWhitch = p[0]; int deleteIndex = int.Parse(p[1]) - 1; if ("ranking" == deleteWhitch) { UserRanking ur = RankingFactorNew.Singleton().getRankingData <UserRanking, RankingScore>(deleteIndex); if (ur == null) { info = "没有找到要删除的数据"; } else { var cache = new ShareCacheStruct <UserRanking>(); cache.Delete(ur); info = "删除数据成功"; } } return(info); }
static bool addRankingReward(List <UserRanking> rankingList) { if (null == rankingList) { ConsoleLog.showErrorInfo(135, "addRankingReward:Error"); TraceLog.WriteError("Error : addRankingReward"); return(false); } int scoreNum = GameConfigMgr.Instance().getInt("rankclear_scoreNum", 20); int DemoNum = GameConfigMgr.Instance().getInt("rankclear_dimondNum", 10000); int max = Math.Max(scoreNum, DemoNum); // get Score accounding to Ranking var totalCache = new ShareCacheStruct <UserRankingTotal>(); var personCache = new PersonalCacheStruct <GameUser>(); for (int i = 0; i < rankingList.Count; ++i) { if (i < DemoNum) { UserRanking ur = rankingList[i]; int score = getScore(i); UserRankingTotal urt = totalCache.FindKey(ur.UserID); if (null == urt) { UserRankingTotal newUrt = new UserRankingTotal(); newUrt.UserID = ur.UserID; newUrt.Total = score; totalCache.Add(newUrt); } else { urt.ModifyLocked(() => { urt.Total += score; }); } } int UserId = rankingList[i].UserID; GameUser gu = personCache.FindKey(UserId.ToString()); if (i < DemoNum) { if (null != gu) { gu.ModifyLocked(() => { gu.Diamond += getDiamond(i); gu.theTotal += getScore(i); }); } } if (null != gu) { gu.ModifyLocked(() => { gu.preRanking = i + 1; }); } } return(true); }
bool cbFuncDuang(object obj) { List <UserRanking> objList = obj as List <UserRanking>; List <UserRanking> rankingList = null; if (null == objList) { return(false); } else { rankingList = objList; } if (null == rankingList || rankingList.Count == 0) { return(false); } int selfScore = requestPack.PageIndex; UserRanking ur = new UserRanking(); ur.Score = selfScore; int pos = rankingList.BinarySearch(ur, new comp()); int h, l, maxPaiHangNum; maxPaiHangNum = objList.Count; //self pos = formatPos(pos); h = rankingList[0].Score; l = rankingList[rankingList.Count - 1].Score > selfScore ? selfScore : rankingList[rankingList.Count - 1].Score; responsePack.hightScore = h; responsePack.lowScore = l; responsePack.totalPlayer = rankingList.Count; responsePack.youPos = pos + 1; RankData self = null; if (requestPack.UserID > 0) { self = new RankData() { pos = responsePack.youPos, UserName = "******", Score = selfScore, UserID = requestPack.UserID }; responsePack.Items.Add(self); } string sendIndex = GameConfigMgr.Instance().getString("rank_send_num_index", "1,2,3,500,1000,2000,5000,10000,20000,30000"); string[] sendS = sendIndex.Split(','); for (int i = 0; i < sendS.Length; ++i) { int index = int.Parse(sendS[i]) - 1; if (index < 0 || index > rankingList.Count - 1) { continue; } if (requestPack.UserID == rankingList[index].UserID) { if (index + 1 < responsePack.youPos) { responsePack.youPos = index + 1; } foreach (var v in responsePack.Items) { if (v.UserID == requestPack.UserID) { v.pos = index + 1; break; } } continue; } RankData rd = new RankData(); rd.Score = rankingList[index].Score; rd.UserName = rankingList[index].UserName; rd.UserID = rankingList[index].UserID; rd.pos = formatPos(index + 1); responsePack.Items.Add(rd); } //responsePack.Items.Sort(new compRD()); return(true); }
bool cbFunc8self8(object obj) { List <UserRanking> objList = obj as List <UserRanking>; List <UserRanking> rankingList = null; if (null == objList) { return(true); } else { rankingList = objList; } if (null == rankingList || rankingList.Count == 0) { return(true); } int selfScore = requestPack.PageIndex; UserRanking ur = new UserRanking(); ur.Score = selfScore; int pos = rankingList.BinarySearch(ur, new comp()); int h, l, maxPaiHangNum; maxPaiHangNum = objList.Count; //self responsePack.Items.Add(new RankData() { UserName = "", Score = int.MaxValue }); h = rankingList[0].Score; l = rankingList[rankingList.Count - 1].Score > selfScore ? selfScore : rankingList[rankingList.Count - 1].Score; int maxSend = GameConfigMgr.Instance().getInt("rank_send_num", 10); if (maxSend > rankingList.Count) { maxSend = 20; } if (pos < 0) { pos = ~pos; } int theNumOf3 = (maxSend - 3); int half = theNumOf3 / 2; int begin = pos - half; int end = pos + half; if (begin < 0) { begin = 0; end = maxSend; } if (end > rankingList.Count) { end = rankingList.Count; begin = end - theNumOf3; if (begin < 0) { begin = 0; ConsoleLog.showErrorInfo(0, "Action1001,begin<0.UserID:" + requestPack.UserID); } if (pos == rankingList.Count) { begin += 1; } } int cnt = Math.Min(begin, 3); for (int i = 0; i < cnt; ++i) { if (rankingList[i].UserID == requestPack.UserID) { continue; } RankData rd = new RankData(); rd.Score = rankingList[i].Score; rd.UserName = rankingList[i].UserName; rd.UserID = rankingList[i].UserID; responsePack.Items.Add(rd); } for (int i = begin; i < end; ++i) { if (rankingList[i].UserID == requestPack.UserID) { continue; } RankData rd = new RankData(); rd.Score = rankingList[i].Score; rd.UserName = rankingList[i].UserName; rd.UserID = rankingList[i].UserID; responsePack.Items.Add(rd); } RankData self = new RankData(); self.UserID = requestPack.UserID; self.UserName = "******"; self.Score = selfScore; responsePack.Items.Add(self); responsePack.Items.Sort(new compRD()); if (pos < 0) { pos = ~pos; if (pos + 1 > 99999) { pos = 99998; } } if (pos >= 99999) { pos = 99998; } if (begin >= 99999) { begin = 99998 - maxSend; } if (end >= 99999) { end = 99998; } responsePack.Items[0].UserName = h + "," + l + "," + rankingList.Count + "," + pos + "," + begin + "," + end; // ��߷֣���ͷ֣��������Լ����� //ConsoleLog.showNotifyInfo(responsePack.Items[0].UserName); return(true); }
public ViewResult UserRanking() { string cachename = "userranking"; if (User.Identity.IsAuthenticated) { cachename += User.Identity.Name.ToLower(); } UserRanking model = _cache.Get <UserRanking>(cachename); if (model == null) { model = new UserRanking(); var exp = _udb.Database.SqlQuery <RankTuple>(@"Select u.username as Name, u.experience as Value, Rank() over (Order by u.experience desc) as Ranking from UserProfile as u"); var sign = _udb.Database.SqlQuery <RankTuple>(@"Select u.username as Name, u.ConsecutiveSign as Value, Rank() over (Order by u.ConsecutiveSign desc) as Ranking from UserProfile as u"); var blogs = _db.Database.SqlQuery <RankTuple>(@"with t as (select Author as Name, Count(BlogID) as Value from Blogs group by Author) select t.Name, t.Value, Rank() over (order by t.Value desc) as Ranking from t"); var posts = _db.Database.SqlQuery <RankTuple>(@"with t as( select nt.Name, sum(counts) as Value from (( select Author as Name, Count(PostID) as counts from posts group by Author ) union ( select Author as Name, Count(ReplyID) as counts from replies group by Author )) as nt group by nt.Name ) select t.Name, t.Value, Rank() over (order by t.Value desc) as Ranking from t"); model.Exp = exp.Take(10).ToList(); model.Blog = blogs.Take(10).ToList(); model.Sign = sign.Take(10).ToList(); model.Post = posts.Take(10).ToList(); if (User.Identity.IsAuthenticated) { var myexp = exp.AsQueryable().SingleOrDefault(r => r.Name == User.Identity.Name); if (myexp != null) { model.MyExp = new Tuple <int, long>(myexp.Value, myexp.Ranking); } myexp = sign.SingleOrDefault(r => r.Name.ToLower() == User.Identity.Name.ToLower()); if (myexp != null) { model.MySign = new Tuple <int, long>(myexp.Value, myexp.Ranking); } myexp = blogs.SingleOrDefault(r => r.Name.ToLower() == User.Identity.Name.ToLower()); if (myexp != null) { model.MyBlog = new Tuple <int, long>(myexp.Value, myexp.Ranking); } myexp = posts.SingleOrDefault(r => r.Name.ToLower() == User.Identity.Name.ToLower()); if (myexp != null) { model.MyPost = new Tuple <int, long>(myexp.Value, myexp.Ranking); } } model.rankdate = DateTime.Now; _cache.Set(cachename, model, new TimeSpan(1, 0, 0)); } return(View(model)); }
public void UpdateRanking(UserRanking ranking) { Context.UserRankings.Update(ranking); }
public async Task AddRanking(UserRanking ranking) { await Context.UserRankings.AddAsync(ranking); }