/// <summary> /// 业务逻辑处理 /// </summary> /// <returns>false:中断后面的方式执行并返回Error</returns> public override bool TakeAction() { receipt = new JPRequestRankData(); UserRank rankInfo = UserHelper.FindRankUser(Current.UserId, RankType.FightValue); if (rankInfo != null) { receipt.SelfRank = rankInfo.RankId; } int pagecout; var ranking = RankingFactory.Get <UserRank>(FightValueRanking.RankingKey); var list = ranking.GetRange(0, 50, out pagecout); foreach (var data in list) { JPRankUserData jpdata = new JPRankUserData() { UserID = data.UserID, NickName = data.NickName, Profession = data.Profession, AvatarUrl = data.AvatarUrl, RankId = data.RankId, UserLv = data.UserLv, FightValue = data.FightValue, VipLv = data.VipLv }; receipt.List.Add(jpdata); } return(true); }
public void SetUserRanking(int TournamentID) { var usrpredict = from x in _userPrediction where x.TournamentID == TournamentID group x by new { x.PUserID } into g select new { UserID = g.Key.PUserID, Point = g.Sum(x => x.Point) }; //var z = ; //List<UserRank> rankList = new List<UserRank>(); int Row = 1; DateTime rankDate = DateTime.Now; foreach (var ur in usrpredict.OrderByDescending(x => x.Point)) { var item = new UserRank { Rank = Row, RankDate = rankDate, UserID = ur.UserID, UserPoint = ur.Point, TournamentID = TournamentID }; //rankList.Add(item); _rank.Add(item); Row++; } _unitOfWork.SaveChanges(); }
public ActionResult _EditUserRank(UserRankEditModel userRankEditModel) { if (userRankEditModel == null || !ModelState.IsValid) { return(View()); } UserRank userRank = userRankEditModel.AsUserRank(); bool isCreated = true; if (userRankEditModel.IsEdit) { userRankService.Update(userRank); } else { UserRank rank = userRankService.Get(userRankEditModel.Rank ?? 0); if (rank != null) { WebUtility.SetStatusCodeForError(Response); ViewData["statusMessageData"] = new StatusMessageData(StatusMessageType.Error, "已经存在的用户等级"); return(View(userRankEditModel)); } isCreated = userRankService.Create(userRank); if (!isCreated) { WebUtility.SetStatusCodeForError(Response); ViewData["statusMessageData"] = new StatusMessageData(StatusMessageType.Error, "创建失败"); return(View(userRankEditModel)); } } return(View(userRankEditModel)); }
public async Task UpdateAsync(UserRank userRank) { var olduserRank = await GetUserRankByUserId(userRank.UserId); userRank.Id = olduserRank.Id; await _UserRank.ReplaceOneAsync(o => o.Id == userRank.Id, userRank, new ReplaceOptions { IsUpsert = true }); }
private void CalculateProgressBar(UserRank rank) { var slices = RankDegree.TotalSlices(); var slicesToTheEnd = RankDegree.CountSlicesAfter(rank.Score); var sliceMinSize = (100.0 / slices) * (slices - slicesToTheEnd); var nextRank = RankDegree.OrderBy(o => o.Points).FirstOrDefault(f => f.Points > rank.Score); if (nextRank == null) { ProgressBar = 100; ShowCircleProgressBar = false; return; } var rankSize = nextRank.Points - RankDegree[rank.Level]; var pointsInActualRank = rank.Score - RankDegree[rank.Level]; var percentualInActualRank = pointsInActualRank / rankSize; var sliceSize = 100.0 / slices; var slicePartToAdd = sliceSize * percentualInActualRank; ProgressBar = sliceMinSize + slicePartToAdd; if (ProgressBar > 100) { ProgressBar = 100; } if (ProgressBar < 0) { ProgressBar = 0; } }
public override bool TakeAction() { receipt = new LevelRankingTop50Data(); Ranking <UserRank> ranking = RankingFactory.Get <UserRank>(LevelRanking.RankingKey); UserRank rankInfo = null; int rankID = 0; if (ranking.TryGetRankNo(m => (m.UserID == Current.UserId), out rankID)) { rankInfo = ranking.Find(s => (s.UserID == Current.UserId)); } if (rankInfo != null) { receipt.SelfRank = rankInfo.RankId; } int pagecout; var list = ranking.GetRange(0, 50, out pagecout); foreach (var data in list) { UserRank rank = new UserRank(data); receipt.List.Add(rank); } return(true); }
private void RewardAndPunishmentUser_After(IUser sender, RewardAndPunishmentUserEventArgs eventArgs) { PointSettings pointSettings = pointSettingsManger.Get(); int totalPoints = pointSettings.CalculateIntegratedPoint(sender.ExperiencePoints, sender.ReputationPoints); //更新用户等级 //if (eventArgs.ExperiencePoints <= 0 && eventArgs.ReputationPoints <= 0) // return; IUserService userService = DIContainer.Resolve <IUserService>(); UserRankService userRankService = new UserRankService(); SortedList <int, UserRank> userRanks = userRankService.GetAll(); UserRank maxUserRank = null; if (userRanks != null && userRanks.Count > 0) { maxUserRank = userRanks.First().Value; } foreach (KeyValuePair <int, UserRank> userRank in userRanks) { if (totalPoints > userRank.Value.PointLower && userRank.Value.PointLower > maxUserRank.PointLower) { maxUserRank = userRank.Value; } } userService.UpdateRank(sender.UserId, maxUserRank.Rank); //自动解除管制 var user = userService.GetFullUser(sender.UserId); if (user.IsModerated && !user.IsForceModerated) { UserSettings userSettings = userSettingsManager.Get(); if (totalPoints > userSettings.NoModeratedUserPoint) { userService.NoModeratedUser(user.UserId); } } //发送通知 if (sender == null) { return; } Notice notice = Notice.New(); notice.UserId = sender.UserId; notice.ApplicationId = 0; notice.TypeId = NoticeTypeIds.Instance().Hint(); if (eventArgs.ExperiencePoints < 0 || eventArgs.ReputationPoints < 0 || eventArgs.TradePoints < 0) { notice.Body = "您被系统扣除经验:" + -eventArgs.ExperiencePoints + "、威望:" + -eventArgs.ReputationPoints + "、金币:" + -eventArgs.TradePoints; } else { notice.Body = "您收到系统奖励经验:" + eventArgs.ExperiencePoints + "、威望:" + eventArgs.ReputationPoints + "、金币:" + eventArgs.TradePoints; } notice.LeadingActorUrl = SiteUrls.FullUrl(SiteUrls.Instance().ListNotices(sender.UserName, null, null)); noticeService.Create(notice); }
internal void SetUserDetails(UserRank<Event> i_userRank) { userThumbnail.Image = i_userRank.User.ImageNormal; foreach (Event sharedEvent in i_userRank.GetObjectList()) { userSharedEventsListBox.Items.Add(sharedEvent.Name); } }
public NamesMessage(Message msg) : base(msg) { Channel = msg.Client.ChannelFromName(msg.Parameters[2]); var users = msg.Parameters[3].Split(separator, StringSplitOptions.RemoveEmptyEntries); foreach (var user in users) { // Use IRCv3 multi-prefix? if (msg.Client.ActiveCapabilities.Contains(Capability.MultiPrefix)) { var ranks = user.TakeWhile(u => UserRank.FromPrefix(u) != UserRank.None) .Select(UserRank.FromPrefix) .Distinct() .ToArray(); var chanUser = msg.Client.UserFromNick(user); if (chanUser == null) //Add new users discovered in response. { //Create new user, remove rank characters from username var newUser = new User(ranks.Min() != UserRank.None ? user.Substring(ranks.Length) : user, Channel.Name, UserRank.None); msg.Client.Users.Add(newUser); Channel.AddUser(newUser); foreach (var rank in ranks) { newUser.AddRank(msg.Client, Channel.Name, rank); } } else //Update ranks of existing users (ourselves). { Channel.AddUser(chanUser); foreach (var rank in ranks) { chanUser.AddRank(msg.Client, Channel.Name, rank); } } } else { var rank = UserRank.FromPrefix(user[0]); var chanUser = msg.Client.UserFromNick(user); if (chanUser == null) //Add new users discovered in response. { var newUser = new User(rank != UserRank.None ? user.Substring(1) : user, Channel.Name, rank); Channel.AddUser(newUser); msg.Client.Users.Add(newUser); } else //Update ranks of existing users (ourselves). { Channel.AddUser(chanUser); chanUser.AddRank(msg.Client, Channel.Name, rank); } } } msg.Client.OnReplyNames(this); }
/// <summary> /// 将用户等级转换为EditModel /// </summary> /// <param name="userRank"></param> /// <returns></returns> public static UserRankEditModel AsEditModel(this UserRank userRank) { return(new UserRankEditModel { PointLower = userRank.PointLower, Rank = userRank.Rank, RankName = userRank.RankName }); }
internal bool Login(string username, string password) { string passwordHash = utils.HashPassword(password); userName = username; userPasswordHash = passwordHash; Damocles2Entities de = new Damocles2Entities(); User user = de.Users.Where(u => u.Username == username && u.UserPassword == passwordHash).FirstOrDefault(); if (user == null) { return(false); } CurrentUser.UserId = user.Id; //TODO: This is not functioning correctly - simply want the User's current rank. UserRank ur = de.UserRanks.Where(usr => usr.UserId == user.Id).FirstOrDefault(); user.IsOnline = true; UserRank = ur.Rank.RankNameEnglish; UserJurisdiction uj = de.UserJurisdictions.Where(usrj => usrj.UserId == user.Id).FirstOrDefault(); if (uj != null) { if (uj.Jurisidction.Country == uj.Jurisidction.State) { UJurisdiction = uj.Jurisidction.Country; } else { UJurisdiction = uj.Jurisidction.State.Trim() + " in " + uj.Jurisidction.Country.Trim(); } } else { UJurisdiction = "Unknown"; } var aus = de.UsersSessions.Where(auss => auss.id == user.Id); foreach (UsersSession userS in aus) { CurrentUser.SessionSecondsTotal += userS.SessionSeconds; } UsersSession us = new UsersSession(); us.LoggedOnAt = DateTime.UtcNow; us.id = user.Id; de.UsersSessions.Add(us); de.SaveChanges(); return(true); }
public User(string login, string password, string phone, string email, UserRank rank, Address userAddress) { this.Login = login; this.Password = password; this.Phone = phone; this.Email = email; this.Rank = rank; this.Address = userAddress; }
internal virtual void TriggerOnRank(Channel source, User user, UserRank rank) { OnRankHandler handler = this.OnRank; if (handler != null) { handler(source, user, rank); } }
public void ProcessMessage(ParsedMessage message, Client client) { User target = message.GetUserFromNick(message.Parameters[0]); if (target == client.User) { char chanType = Convert.ToChar(message.Parameters[1]); Channel channel = message.GetChannel(message.Parameters[2]); switch (chanType) { case '=': channel.IsPrivate = false; channel.IsSecret = false; break; case '*': channel.IsPrivate = true; channel.IsSecret = false; break; case '@': channel.IsSecret = true; break; } string[] users = message.Parameters[3].Split(' '); foreach (string userStr in users) { if (string.IsNullOrEmpty(userStr)) { break; } UserRank rank = UserRank.None; string nick = userStr; char[] ranks = userStr.TakeWhile(c => User.RankChars.ContainsKey(c)).ToArray(); // Take all the user statuses nick = new string(userStr.SkipWhile(c => User.RankChars.ContainsKey(c)).ToArray()); // Take the remaining nick User user = client.UserFactory.FromNick(nick); foreach (char rankChar in ranks) { rank = rank | User.RankChars[rankChar]; } channel.SetRank(user, rank); channel.AddUser(user); } channel.TriggerOnNames(users); } }
public void InsertUpdate(UserRank rec) { if (rec.Id == Guid.Empty) { context.UserRanks.Add(rec); } else { context.Entry(rec).State = EntityState.Modified; } }
public static UserRankDto ToDto(this UserRank rank) { return(new UserRankDto() { Id = rank.Rank_ID, FinalGrade = rank.Final_Grade, SystemGrade = rank.System_Grade, UserId = rank.User_ID, UsersGrade = rank.Users_Grade.Value }); }
public ActionResult _EditUserRank(int rank = -1, bool isEdit = false) { UserRank userRank = userRankService.Get(rank); UserRankEditModel userRankEditModel = new UserRankEditModel(); if (userRank != null) { userRankEditModel = userRank.AsEditModel(); } userRankEditModel.IsEdit = isEdit; return(View(userRankEditModel)); }
void show_ranking(UserRank u, int i) { GameObject myInstance = Instantiate(prefab, parent); //생성후 자리 어떻게 생기는지 과나 var rank = myInstance.transform.GetChild(0).gameObject; rank.GetComponent <TextMeshProUGUI>().text = i.ToString(); var name = myInstance.transform.GetChild(1).gameObject; name.GetComponent <TextMeshProUGUI>().text = u.ID; var score = myInstance.transform.GetChild(2).gameObject; score.GetComponent <TextMeshProUGUI>().text = "score : " + u.score.ToString(); }
public async Task <Stream> GetUserStatsImage(UserRank rank, UserStatsOptions options) { var svg = new UserStatsCard(_degree, options); var file = await GetSvgFile(svg.GetCardName()); var translations = await GetTranslations(options.Locale ?? "en"); var styles = await GetStyle(options.Theme ?? "default"); styles.Apply(options); return(svg.Svg(file, rank, styles, translations)); }
/// <summary> /// 得到当前用户的下一个等级 /// </summary> /// <param name="userid">当前用户</param> /// <returns>userrank</returns> public UserRank GetNextRank(int userid) { DataSet ds = DbHelperSQL.Query("select top 1 * from userrank where minscore>(select userscore from users where userid=" + userid + ") order by minscore"); UserRank userrank = new UserRank(); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
public void SetUserRank(User user, UserRank rank) { User u = FindUserById(user.Id); if (u == null) { AddUser(user); u = FindUserById(user.Id); } user.BotRank = rank; u.BotRank = rank; SaveChanges(); }
/// <summary> /// 得到用户等级实例,根据用户的论坛分值 /// </summary> /// <param name="UserScore">用户论坛分值</param> /// <returns>返回用户等级实例</returns> public OnLineTest.Model.UserRank GetModel(Users user) { UserRank userrank = new UserRank(); if (HttpRuntime.Cache["userscore:" + user.UserScore.ToString() + "touserrank"] != null) { userrank = (UserRank)HttpRuntime.Cache["userscore:" + user.UserScore.ToString() + "touserrank"]; } else { userrank = dal.GetModel(user); HttpRuntime.Cache.Insert("userscore:" + user.UserScore.ToString() + "touserrank", userrank, null, DateTime.Now.AddMinutes(30), TimeSpan.Zero); } return(userrank); }
private static short GetRankStatus(bool isWin, UserRank userRank, UserRank toUserRank) { //0:不变 1:上升 2:下降 if (isWin && userRank.RankId > toUserRank.RankId) { return((short)1); } else if (!isWin && userRank.RankId < toUserRank.RankId) { return((short)2); } else { return((short)0); } }
internal static Dictionary<string, UserRank<Event>> FetchAttendeesFromEvents(User i_LoggedInUser) { FacebookService.s_CollectionLimit = k_NumberOfEventsToFetch; FacebookObjectCollection<Event> userFacebookEvents = i_LoggedInUser.Events; Dictionary<string, UserRank<Event>> allAttendingUsersOnUserEvents = new Dictionary<string, UserRank<Event>>(); FacebookService.s_CollectionLimit = k_NumberOfUsersFromEventsToFetch; foreach (Event userFacebookEvent in userFacebookEvents) { if (userFacebookEvent.Privacy == Event.ePrivacy.Open) { foreach (User attendingUser in userFacebookEvent.AttendingUsers) { UserRank<Event> currentAttendee; if (!allAttendingUsersOnUserEvents.TryGetValue(attendingUser.Id, out currentAttendee)) { currentAttendee = new UserRank<Event>(attendingUser); allAttendingUsersOnUserEvents.Add(attendingUser.Id, currentAttendee); } currentAttendee.AddObjectToUser(userFacebookEvent); } } } List<string> usersToRemove = new List<string>(); foreach (string userToCheck in allAttendingUsersOnUserEvents.Keys) { UserRank<Event> userRankToCheck; if (allAttendingUsersOnUserEvents.TryGetValue(userToCheck, out userRankToCheck)) { if (userRankToCheck.GetObjectCount() < k_MinimunNumberOfSharedEventsToShow || userToCheck == i_LoggedInUser.Id) { usersToRemove.Add(userToCheck); } } } foreach (string userToRemove in usersToRemove) { allAttendingUsersOnUserEvents.Remove(userToRemove); } FacebookService.s_CollectionLimit = k_DefaultNumberOfObjectsToFetch; return allAttendingUsersOnUserEvents; }
/// <summary> /// 更改用户积分 /// </summary> /// <param name="sender"></param> /// <param name="eventArgs"></param> void ChangePointsEventModule_After(IUser sender, ChangePointsEventArgs eventArgs) { if (eventArgs.ExperiencePoints <= 0 && eventArgs.ReputationPoints <= 0) { return; } IUserService userService = DIContainer.Resolve <IUserService>(); //自动升级 UserRankService userRankService = new UserRankService(); SortedList <int, UserRank> userRanks = userRankService.GetAll(); UserRank maxUserRank = null; if (userRanks != null && userRanks.Count > 0) { maxUserRank = userRanks.ElementAt(0).Value; } IPointSettingsManager pointSettingsManger = DIContainer.Resolve <IPointSettingsManager>(); PointSettings pointSettings = pointSettingsManger.Get(); int totalPoints = pointSettings.CalculateIntegratedPoint(sender.ExperiencePoints, sender.ReputationPoints); foreach (KeyValuePair <int, UserRank> userRank in userRanks) { if (totalPoints > userRank.Value.PointLower && userRank.Value.PointLower > maxUserRank.PointLower) { maxUserRank = userRank.Value; } } if (maxUserRank.Rank > sender.Rank) { userService.UpdateRank(sender.UserId, maxUserRank.Rank); } //自动解除管制 var user = userService.GetFullUser(sender.UserId); if (user.IsModerated && !user.IsForceModerated) { UserSettings userSettings = DIContainer.Resolve <IUserSettingsManager>().Get(); if (totalPoints > userSettings.NoModeratedUserPoint) { userService.NoModeratedUser(user.UserId); } } }
public bool Exists(UserGroup usergroup, UserRank userrank, Authority authority) { StringBuilder strSql = new StringBuilder(); strSql.Append("select count(1) from UserAuthority"); strSql.Append(" where AuthorityId=@AuthorityId and UserGroupId=@UserGroupId and UserRankId=@UserRankId"); SqlParameter[] parameters = { new SqlParameter("@AuthorityId", SqlDbType.Int, 4), new SqlParameter("@UserGroupId", SqlDbType.Int, 4), new SqlParameter("@UserRankId", SqlDbType.Int, 4) }; parameters[0].Value = authority.AuthorityId; parameters[1].Value = usergroup.UserGroupId; parameters[2].Value = userrank.UserRankId; return(DbHelperSQL.Exists(strSql.ToString(), parameters)); }
public WhoMessage(Message msg) : base(msg) { var info = BaseMessage.Parameters[BaseMessage.Parameters.Length - 1].Split(' '); if (info.Length > 1) { Realname = string.Join(" ", info.Skip(1)).Trim(); } var user = msg.Client.UserFromNick(Nick); if (user != null) //If the user is recognized (Because of a previous JOIN message), fill in their details. { user.Host = Host; user.RealName = Realname; user.Ident = Ident; var infoParams = msg.Parameters[6]; foreach (var character in infoParams) { switch (character) { case '*': user.IsOp = true; break; case 'G': //Handle gone/here user.SetIsAway(msg.Client, true); break; case 'H': user.SetIsAway(msg.Client, false); break; default: //Handle ranks var rank = UserRank.FromPrefix(character); if (rank != UserRank.None) { user.AddRank(msg.Client, Channel, rank); } break; } } } msg.Client.OnReplyWho(this); }
UserRank IUserDataProcessingService.ProcessUserRankFromLadder(string jsonResponse, Ladders ladder, AoeNetAPIStringResources apiStringResources) { var ratingResponse = JsonConvert.DeserializeObject <UserLadderDataResponse>(jsonResponse); //response to UserRank model var userRank = new UserRank { //we always want to use .First() becouse api don't allow for multiple requests between multiple leadboards Elo = ratingResponse.Leaderboard.First().Rating, Ladder = ratingResponse.Leaderboard.First().Rank }; var userRankData = new UserData(); userRankData.UserRatings.Add(ladder, userRank); return(userRank); }
//左边button点击事件 void leftClick() { if (!is_clicked && !is_gap) { if (current_type == 2) { //Game Over //set cache //若用户已登陆,上传用户得分 if (PlayerPrefs.GetInt("is_log") == 1) { //获取手机号 string phone_number = PlayerPrefs.GetString("phone_number"); //上传得分 UserScore new_score = new UserScore(); new_score.phone_number = phone_number; new_score.curr_score = score; string json = JsonConvert.SerializeObject(new_score); string post_url = "http://39.106.107.66:3000/update"; string resp_json = postData(post_url, json); UserRank new_rank = new UserRank(); new_rank = JsonConvert.DeserializeObject <UserRank>(resp_json); Debug.Log(resp_json); PlayerPrefs.SetInt("my_rank", new_rank.curr_rank); PlayerPrefs.SetInt("my_best", new_rank.best_score); } overDialog.SetActive(true); } else { //执行动作并更新分数 is_clicked = true; hero_animator.Play("Attack", 0, 0f); boss_animator.Play("bossAttack", 0, 0f); score = score + 1; GameObject.Find("Canvas/Text").GetComponent <Text>().text = "Score: " + score; } Invoke("backToIdle", 1); } }
public void Execute(Message msg, ulong id, UserRank rank) { User user = msg.Client.GetChatMemberById(msg.Chat.Id, id); if (user == null) { return; } user.ChangeDatabaseRank(rank); string name = user.Name; if (name == null || name == "") { name = user.Username; } msg.Reply("I upgraded " + id + " (" + name + ")'s rank to: " + rank.ToString()); }
public void newRecord() { UserRank record = new UserRank(); record.ID = TMPtext.text; record.score = PlayerInput.playScore; record.index = Data.userList.Count; //점수가 같을 경우 더 빠른점수를 상위랭크로 매길 때 사용 Data.userList[cur_song].Add(record); // 점수 내림차순 정렬 후 들어온 순서대로 오름차순 정렬 Data.userList[cur_song] = Data.userList[cur_song].OrderByDescending(x => x.score).ThenBy(x => x.index).ToList(); foreach (var rank in Data.userList[cur_song]) { if (idx > 10) { break; } show_ranking(rank, idx); idx++; } idx = 1; }
public Stream Svg(string file, UserRank rank, CardStyles cardStyles, CardTranslations cardTranslations) { CalculateProgressBar(rank); var svgFinal = file .Replace("{{Name}}", rank.UserStats.Name.Truncate(25)) .Replace("{{Stars}}", rank.UserStats.TotalStars()) .Replace("{{Commits}}", rank.UserStats.TotalCommits()) .Replace("{{PRS}}", rank.UserStats.TotalPullRequests()) .Replace("{{Issuers}}", rank.UserStats.TotalIssues()) .Replace("{{Contributions}}", rank.UserStats.TotalContributedFor()) .Replace("{{Level}}", rank.Level) .Replace("{{ProgressBarEnd}}", $"{CalculateCircleProgress(ProgressBar):F}") // Translations .Replace("{{StarsLabel}}", cardTranslations.StarsLabel) .Replace("{{PullRequestLabel}}", cardTranslations.PullRequestLabel) .Replace("{{IssuesLabel}}", cardTranslations.IssuesLabel) .Replace("{{CommitsLabel}}", cardTranslations.CommitsLabel) .Replace("{{ContributionsLabel}}", cardTranslations.ContributionsLabel) // Theme .Replace("{{TextColor}}", cardStyles.TextColor) .Replace("{{TitleColor}}", cardStyles.TitleColor) .Replace("{{IconColor}}", cardStyles.IconColor) .Replace("{{BackgroundColor}}", cardStyles.BackgroundColor) .Replace("{{BorderColor}}", cardStyles.BorderColor) .Replace("{{RingColor}}", cardStyles.RingColor) .Replace("{{ShowIcons}}", cardStyles.ShowIcons ? "block" : "none") .Replace("{{TextPosition}}", cardStyles.ShowIcons ? "25" : "0") .Replace("{{ProgressBarWidth}}", CalculateRectangleProgress(ProgressBar).ToString(CultureInfo.InvariantCulture)) ; if (ShowCircleProgressBar) { svgFinal = svgFinal .Replace("{{ProgressBar}}", CircleProgressBar); } return(new MemoryStream(Encoding.UTF8.GetBytes(svgFinal))); }
public void NSCSMOnline() { packetCommandSub = ez.Read1(); byte packetCommandSubSub = ez.Read1(); if (packetCommandSub == 0) { // Login ez.Read1(); // Reserved byte string smoUsername = ez.ReadNT(); string smoPassword = ez.ReadNT(); if (!new Regex("^([A-F0-9]{32})$").Match(smoPassword).Success) { ez.Write1((byte)(mainClass.ServerOffset + NSCommand.NSCSMOnline)); ez.Write2(1); ez.WriteNT("Login failed! Invalid password."); ez.SendPack(); MainClass.AddLog("Invalid password hash given!", true); return; } Hashtable[] smoLoginCheck = Sql.Query("SELECT * FROM \"users\" WHERE \"Username\"='" + Sql.AddSlashes(smoUsername) + "'"); if (smoLoginCheck.Length == 1 && smoLoginCheck[0]["Password"].ToString() == smoPassword) { MainClass.AddLog(smoUsername + " logged in."); User_Table = smoLoginCheck[0]; User_ID = (int)User_Table["ID"]; User_Name = (string)User_Table["Username"]; User_Rank = (UserRank)User_Table["Rank"]; ez.Write1((byte)(mainClass.ServerOffset + NSCommand.NSCSMOnline)); ez.Write2(0); ez.WriteNT("Login success!"); ez.SendPack(); SendChatMessage(mainClass.ServerConfig.Get("Server_MOTD")); SendRoomList(); User[] users = GetUsersInRoom(); foreach (User user in users) user.SendRoomPlayers(); return; } else if (smoLoginCheck.Length == 0) { if (bool.Parse(mainClass.ServerConfig.Get("Allow_Registration"))) { Sql.Query("INSERT INTO main.users (\"Username\",\"Password\",\"Email\",\"Rank\",\"XP\") VALUES(\"" + Sql.AddSlashes(smoUsername) + "\",\"" + Sql.AddSlashes(smoPassword) + "\",\"\",0,0)"); MainClass.AddLog(smoUsername + " is now registered with hash " + smoPassword); User_Table = Sql.Query("SELECT * FROM \"users\" WHERE \"Username\"='" + Sql.AddSlashes(smoUsername) + "' AND \"Password\"='" + Sql.AddSlashes(smoPassword) + "'")[0]; User_ID = (int)User_Table["ID"]; User_Name = (string)User_Table["Username"]; User_Rank = (UserRank)User_Table["Rank"]; ez.Write1((byte)(mainClass.ServerOffset + NSCommand.NSCSMOnline)); ez.Write2(0); ez.WriteNT("Login success!"); ez.SendPack(); SendChatMessage(mainClass.ServerConfig.Get("Server_MOTD")); SendRoomList(); User[] users = GetUsersInRoom(); foreach (User user in users) user.SendRoomPlayers(); return; } } MainClass.AddLog(smoUsername + " tried logging in with hash " + smoPassword + " but failed"); ez.Write1((byte)(mainClass.ServerOffset + NSCommand.NSCSMOnline)); ez.Write2(1); ez.WriteNT("Login failed! Invalid password."); ez.SendPack(); } else if (packetCommandSub == 01) { // Join room if (!RequiresAuthentication()) return; if (ez.LastPacketSize == 0) return; string joinRoomName = ez.ReadNT(); string joinRoomPass = ""; if (ez.LastPacketSize > 0) joinRoomPass = ez.ReadNT(); foreach (Room room in mainClass.Rooms) { if (room.Name == joinRoomName && (room.Password == joinRoomPass || IsModerator())) { CurrentRoom = room; SendToRoom(); break; } } } else if (packetCommandSub == 02) { // New room if (!RequiresAuthentication()) return; string newRoomName = ez.ReadNT(); string newRoomDesc = ez.ReadNT(); string newRoomPass = ""; if (ez.LastPacketSize > 0) newRoomPass = ez.ReadNT(); MainClass.AddLog(User_Name + " made a new room '" + newRoomName + "'"); Room newRoom = new Room(mainClass, this); newRoom.Name = newRoomName; newRoom.Description = newRoomDesc; newRoom.Password = newRoomPass; mainClass.Rooms.Add(newRoom); User[] users = GetUsersInRoom(); foreach (User user in users) user.SendRoomList(); CurrentRoom = newRoom; CurrentRoomRights = RoomRights.Owner; SendToRoom(); SendChatMessage("Welcome to your room! Type /help for a list of commands."); } else { // This is probably only for command sub 3, which is information you get when you hover over a room in the lobby. // TODO: Make NSCSMOnline sub packet 3 (room info on hover) //MainClass.AddLog( "Discarded unknown sub-packet " + packetCommandSub.ToString() + " for NSCSMOnline" ); ez.Discard(); } }
internal void SetRank(User user, UserRank rank) { user._ranks[this.Name] = rank; this.TriggerOnRank(this, user, rank); }
internal virtual void TriggerOnRank(Channel source, User user, UserRank rank) { OnRankHandler handler = this.OnRank; if (handler != null) handler(source, user, rank); }
private static void getAttendeesInEvent(Event i_UserFacebookEvent, Dictionary<string, UserRank<Event>> i_AllAttendingUsersOnUserEvents) { foreach (User attendingUser in i_UserFacebookEvent.AttendingUsers) { UserRank<Event> currentAttendee; lock (i_AllAttendingUsersOnUserEvents) { if (!i_AllAttendingUsersOnUserEvents.TryGetValue(attendingUser.Id, out currentAttendee)) { currentAttendee = new UserRank<Event>(attendingUser); i_AllAttendingUsersOnUserEvents.Add(attendingUser.Id, currentAttendee); } currentAttendee.AddObjectToUser(i_UserFacebookEvent); } } }
internal static List<UserRank<Photo>> FetchTags(User i_LoggedInUser) { FacebookService.s_CollectionLimit = k_NumberOfPhotosToFetch; FacebookObjectCollection<Photo> userTaggedPhotos = i_LoggedInUser.PhotosTaggedIn; Dictionary<string, UserRank<Photo>> allTaggedFriendsOnUserPhotos = new Dictionary<string, UserRank<Photo>>(); foreach (Photo photo in userTaggedPhotos) { foreach (PhotoTag photoTag in photo.Tags) { UserRank<Photo> currentFriendTag; if (!allTaggedFriendsOnUserPhotos.TryGetValue(photoTag.User.Id, out currentFriendTag)) { currentFriendTag = new UserRank<Photo>(photoTag.User); allTaggedFriendsOnUserPhotos.Add(photoTag.User.Id, currentFriendTag); } currentFriendTag.AddObjectToUser(photo); } } allTaggedFriendsOnUserPhotos.Remove(i_LoggedInUser.Id); FacebookService.s_CollectionLimit = k_DefaultNumberOfObjectsToFetch; List<UserRank<Photo>> allTaggedAsList = allTaggedFriendsOnUserPhotos.Values.ToList(); return allTaggedAsList; }
public void NSCSMOnline() { packetCommandSub = ez.Read1(); //Client requested more info on room if (packetCommandSub == 3) { string joinRoomName = ez.ReadNT(); ez.Discard(); foreach (Room room in mainClass.Rooms) { if (room.Name == joinRoomName) { //MainClass.AddLog("Found room name : " + room.Name); MainClass.AddLog(Utf8Decode(room.CurrentSong.Name) + ", " + Utf8Decode(room.CurrentSong.SubTitle) + ", " + Utf8Decode(room.CurrentSong.Artist)); ez.Write1((byte)(mainClass.ServerOffset + NSCommand.NSCSMOnline)); ez.Write1((byte)3); ez.WriteNT(room.CurrentSong.Name); ez.WriteNT(room.CurrentSong.SubTitle); ez.WriteNT(room.CurrentSong.Artist); ez.Write1((byte)room.Users.Count()); ez.Write1((byte)32); foreach (User user in room.Users) { ez.WriteNT(user.User_Name); } return; } } } byte packetCommandSubSub = ez.Read1(); if (packetCommandSub == 0) // Login { ez.Read1(); // Reserved byte string smoUsername = ez.ReadNT(); string smoPassword = ez.ReadNT(); if (!new Regex("^([A-F0-9]{32})$").Match(smoPassword).Success) { ez.Write1((byte)(mainClass.ServerOffset + NSCommand.NSCSMOnline)); ez.Write2(1); ez.WriteNT("Login failed! Invalid password."); ez.SendPack(); MainClass.AddLog("Invalid password hash given!", true); return; } if ( smoUsername.Length > 32 ) { ez.Write1((byte)(mainClass.ServerOffset + NSCommand.NSCSMOnline)); ez.Write2(1); ez.WriteNT("Login failed! Name too Long"); ez.SendPack(); MainClass.AddLog("Login name too long:" + smoUsername, true); return; } Hashtable[] smoLoginCheck = MySql.Query("SELECT * from users where Username='******'"); if (smoLoginCheck.Length == 1 && smoLoginCheck[0]["Password"].ToString() == smoPassword) { MainClass.AddLog(smoUsername + " logged in."); User_Table = smoLoginCheck[0]; User_ID = (int)User_Table["ID"]; User_Name = (string)User_Table["Username"]; User_Rank = (UserRank)User_Table["Rank"]; int User_XP = (int)User_Table["XP"]; Hashtable[] checkstasrank = MySql.Query("select count(*) as 'levelrank' from users where xp > '" + User_XP.ToString() + "'"); Rank_Table = checkstasrank[0]; User_Level_Rank = (int)Rank_Table["levelrank"] + 1; MySql.Query("INSERT INTO connectionlog (userid,username,password,ip,result,clientversion) VALUES('" + User_ID + "','" + MySql.AddSlashes(smoUsername) + "','" + smoPassword + "','" + User_IP + "','suceeded','" + MySql.AddSlashes(User_Game) + "')"); User[] checkifconnected = GetUsersInServer(); foreach (User user in checkifconnected) { if (user.User_Name.ToString() == this.User_Name.ToString()) { connectioncount++; } if (connectioncount > 1 ) { MainClass.AddLog("Kicking user " + this.User_Name.ToString() + " for duplicate login attempt"); } } if (connectioncount > 1) { User[] kickconnected = GetUsersInServer(); foreach (User user in kickconnected) { if (user.User_Name.ToString() == this.User_Name.ToString()) { user.Kick(); break; } } } connectioncount = 0; ez.Write1((byte)(mainClass.ServerOffset + NSCommand.NSCSMOnline)); ez.Write2(0); ez.WriteNT("Login success!"); ez.SendPack(); SendChatMessage(mainClass.ServerConfig.Get("Server_MOTD")); string builddate = mainClass.RetrieveLinkerTimestamp().ToString("MM/dd/yy HH:mm:ss"); SendChatMessage("Server was last updated on: "+ builddate); SendChatMessage("If you have not yet already Please create a room and run /scan"); Hashtable[] checkforfriends = MySql.Query("select * from friends where friend = " + User_ID.ToString() + ""); User[] allusers = GetUsersInServer(); if (checkforfriends.Count() != 0 ) { for (int i = 0; i < checkforfriends.Count(); i++) { foreach (User user in allusers) { if (user.User_ID == (int)checkforfriends[i]["user"]) { string time = DateTime.Now.ToString("HH:mm:ss"); user.SendChatMessage(Func.ChatColor("ffff00") + "Your friend: " + Func.ChatColor("ffffff") + "'" +NameFormat() + "'" + Func.ChatColor("ffff00") + " has connected to the server at " + time + "." + Func.ChatColor("ffffff")); } } } } Hashtable[] checkforusers = MySql.Query("select * from friends where user = "******""); User[] allusersfriends = GetUsersInServer(); if (checkforusers.Count() != 0 ) { for (int i = 0; i < checkforusers.Count(); i++) { foreach (User user in allusersfriends) { if (user.User_ID == (int)checkforusers[i]["friend"]) { SendChatMessage(Func.ChatColor("ffff00") + "Your friend: " + Func.ChatColor("ffffff") + "'" + user.NameFormat() + "'" + Func.ChatColor("ffff00") + " Is on the server." + Func.ChatColor("ffffff")); } } } } SendRoomList(); User[] users = GetUsersInRoom(); foreach (User user in users) user.SendRoomPlayers(); return; } else if (smoLoginCheck.Length == 0) { if (bool.Parse(mainClass.ServerConfig.Get("Allow_Registration"))) { MySql.Query("INSERT INTO users (Username,Password,Email,Rank,XP) VALUES(\'" + MySql.AddSlashes(smoUsername) + "\',\'" + MySql.AddSlashes(smoPassword) + "\',\'\',0,0)"); MainClass.AddLog(smoUsername + " is now registered with hash " + smoPassword); User_Table = MySql.Query("SELECT * FROM users WHERE Username='******' AND Password='******'")[0]; User_ID = (int)User_Table["ID"]; User_Name = (string)User_Table["Username"]; User_Rank = (UserRank)User_Table["Rank"]; MySql.Query("INSERT INTO connectionlog (userid,username,password,ip,result,clientversion) VALUES('" + User_ID + "','" + MySql.AddSlashes(User_Name) + "','" + smoPassword + "','" + User_IP + "','suceeded','" + MySql.AddSlashes(User_Game) + "')"); ez.Write1((byte)(mainClass.ServerOffset + NSCommand.NSCSMOnline)); ez.Write2(0); ez.WriteNT("Login success!"); ez.SendPack(); SendChatMessage(mainClass.ServerConfig.Get("Server_MOTD")); SendRoomList(); User[] users = GetUsersInRoom(); foreach (User user in users) user.SendRoomPlayers(); return; } } MainClass.AddLog(smoUsername + " tried logging in with hash " + smoPassword + " but failed"); MySql.Query("INSERT INTO connectionlog (userid,username,password,ip,result,clientversion) VALUES('" + User_ID + "','" + MySql.AddSlashes(smoUsername) + "','" + smoPassword + "','" + User_IP + "','failed','" + MySql.AddSlashes(User_Game) + "')"); ez.Write1((byte)(mainClass.ServerOffset + NSCommand.NSCSMOnline)); ez.Write2(1); ez.WriteNT("Login failed! Invalid password."); ez.SendPack(); } else if (packetCommandSub == 01) // Join room { if (!RequiresAuthentication()) return; if (ez.LastPacketSize == 0) return; string joinRoomName = ez.ReadNT(); string joinRoomPass = ""; if (ez.LastPacketSize > 0) joinRoomPass = ez.ReadNT(); int roombanned = 0; foreach (Room room in mainClass.Rooms) { if (room.Name == joinRoomName) { List<int> banned = new List<int>(room.banned); foreach (int banned_id in banned) { if (banned_id == User_ID) { roombanned = 1; SendChatMessage("You have been banned from this room."); } } } if (room.Name == joinRoomName && (room.Password == joinRoomPass || IsModerator() || room.Password == joinpass) && roombanned == 0 ) { CurrentRoom = room; SendToRoom(); break; } } } else if (packetCommandSub == 02) // New room { if (!RequiresAuthentication()) return; string newRoomName = ez.ReadNT(); string newRoomDesc = ez.ReadNT(); string newRoomPass = ""; if (ez.LastPacketSize > 0) newRoomPass = ez.ReadNT(); MainClass.AddLog(User_Name + " made a new room '" + newRoomName + "'"); Room newRoom = new Room(mainClass, this); newRoom.Name = newRoomName; newRoom.Description = newRoomDesc; newRoom.Password = newRoomPass; mainClass.Rooms.Add(newRoom); User[] users = GetUsersInRoom(); foreach (User user in users) user.SendRoomList(); CurrentRoom = newRoom; if (this.CurrentRoom != null) { if ( CurrentRoom.Password != "" ) { CurrentRoom.Status = RoomStatus.Locked; } else { CurrentRoom.Status = RoomStatus.Ready; } } CurrentRoomRights = RoomRights.Owner; SendToRoom(); UpdateRoomStatus(); SendChatMessage("Welcome to your room! Type /help for a list of commands."); } else { // This is probably only for command sub 3, which is information you get when you hover over a room in the lobby. // TODO: Make NSCSMOnline sub packet 3 (room info on hover) //MainClass.AddLog( "Discarded unknown sub-packet " + packetCommandSub.ToString() + " for NSCSMOnline" ); ez.Discard(); } }
private DataView CreateDataView(UserRank[] aUR, string AsType, long rankid) { // for userrank DataView dv = new DataView(); System.Web.UI.WebControls.BoundColumn colBound = new System.Web.UI.WebControls.BoundColumn(); if (AsType == "change") { colBound = new System.Web.UI.WebControls.BoundColumn(); colBound.DataField = "Blank"; colBound.HeaderText = " <input type=\"hidden\" name=\"ekuserrankold\" id=\"ekuserrankold\" value=\"" + rankid.ToString() + "\"/>"; colBound.ItemStyle.HorizontalAlign = HorizontalAlign.Center; dgUserRank.Columns.Add(colBound); } colBound = new System.Web.UI.WebControls.BoundColumn(); colBound.DataField = "Name"; colBound.HeaderText = base.GetMessage("generic name"); dgUserRank.Columns.Add(colBound); colBound = new System.Web.UI.WebControls.BoundColumn(); colBound.DataField = "IsStart"; colBound.HeaderText = base.GetMessage("lbl isstart"); colBound.ItemStyle.HorizontalAlign = HorizontalAlign.Center; colBound.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; dgUserRank.Columns.Add(colBound); colBound = new System.Web.UI.WebControls.BoundColumn(); colBound.DataField = "IsLadder"; colBound.HeaderText = base.GetMessage("lbl isladder"); colBound.ItemStyle.HorizontalAlign = HorizontalAlign.Center; colBound.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; colBound.HeaderStyle.CssClass = "title-header"; dgUserRank.Columns.Add(colBound); colBound = new System.Web.UI.WebControls.BoundColumn(); colBound.DataField = "ID"; colBound.HeaderText = base.GetMessage("generic id"); colBound.ItemStyle.HorizontalAlign = HorizontalAlign.Center; colBound.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; dgUserRank.Columns.Add(colBound); colBound = new System.Web.UI.WebControls.BoundColumn(); colBound.DataField = "Posts"; colBound.HeaderText = base.GetMessage("lbl num posts"); colBound.ItemStyle.HorizontalAlign = HorizontalAlign.Left; dgUserRank.Columns.Add(colBound); if (m_iBoardID == 0) { colBound = new System.Web.UI.WebControls.BoundColumn(); colBound.DataField = "AppliesTo"; colBound.HeaderText = base.GetMessage("lbl applies to"); dgUserRank.Columns.Add(colBound); } DataTable dt = new DataTable(); DataRow dr; if (AsType == "change") { dt.Columns.Add(new DataColumn("Blank", typeof(string))); } dt.Columns.Add(new DataColumn("Name", typeof(string))); dt.Columns.Add(new DataColumn("IsStart", typeof(string))); dt.Columns.Add(new DataColumn("IsLadder", typeof(string))); dt.Columns.Add(new DataColumn("ID", typeof(string))); dt.Columns.Add(new DataColumn("Posts", typeof(string))); dt.Columns.Add(new DataColumn("AppliesTo", typeof(string))); if (AsType == "change") { bool bHasBeenSelected = false; for (int i = 0; i <= (aUR.Length - 1); i++) { dr = dt.NewRow(); if (aUR[i].ID == rankid || (i == (aUR.Length - 1) && bHasBeenSelected == false)) { dr[0] = "<input type=\"radio\" name=\"ekuserrank\" id=\"ekuserrank\" value=\"" + aUR[i].ID.ToString() + "\" checked=\"true\" />"; bHasBeenSelected = true; } else { dr[0] = "<input type=\"radio\" name=\"ekuserrank\" id=\"ekuserrank\" value=\"" + aUR[i].ID.ToString() + "\"/>"; } dr[1] = aUR[i].Name + ((aUR[i].Posts > -1) ? " *" : ""); dr[2] = "<input type=\"checkbox\" " + ((aUR[i].StartGroup) ? " checked=\"true\" " : "") + " disabled=\"true\" />"; dr[3] = "<input type=\"checkbox\" " + ((aUR[i].Posts > -1) ? " checked=\"true\" " : "") + " disabled=\"true\" />"; dr[4] = aUR[i].ID.ToString(); if (aUR[i].Posts > -1) { dr[5] = aUR[i].Posts + " Posts"; } else { //dr(3) = "" } if (m_iBoardID == 0) { for (int j = 0; j <= (aUR[i].AppliesTo.Length - 1); j++) { dr[6] += "<img valign=\'absbottom\' src=\'" + AppPath + "images/UI/Icons/users.png" + "\' /> " + aUR[i].AppliesTo[j].Name; if (j < aUR[i].AppliesTo.Length) { dr[6] += "<br/>"; } } } dt.Rows.Add(dr); } } else { for (int i = 0; i <= (aUR.Length - 1); i++) { dr = dt.NewRow(); dr[0] = "<a href=\"userranks.aspx?action=view&boardid=" + this.m_iBoardID.ToString() + "&id=" + aUR[i].ID.ToString() + "\">" + aUR[i].Name + "</a>"; dr[1] = "<input type=\"checkbox\" " + ((aUR[i].StartGroup) ? " checked=\"true\" " : "") + " disabled=\"false\" />"; dr[2] = "<input type=\"checkbox\" " + ((aUR[i].Posts > -1) ? " checked=\"true\" " : "") + " disabled=\"false\" />"; dr[3] = "<a href=\"userranks.aspx?action=view&boardid=" + this.m_iBoardID.ToString() + "&id=" + aUR[i].ID.ToString() + "\">" + aUR[i].ID.ToString() + "</a>"; if (aUR[i].Posts > -1) { dr[4] = "<a href=\"userranks.aspx?action=view&boardid=" + this.m_iBoardID.ToString() + "&id=" + aUR[i].ID.ToString() + "\">" + aUR[i].Posts + ((aUR[i].Posts > 1) ? (" " + GetMessage("lbl posts")) : (" " + GetMessage("lbl post"))) + "</a>"; } else { //dr(3) = "" } if (m_iBoardID == 0) { for (int j = 0; j <= (aUR[i].AppliesTo.Length - 1); j++) { dr[5] += "<img valign=\'absbottom\' src=\'" + AppPath + "images/UI/Icons/users.png" + "\' /> <a href=\"../content.aspx?action=ViewContentByCategory&id=" + aUR[i].AppliesTo[j].Id.ToString() + "\">" + aUR[i].AppliesTo[j].Name + "</a>"; if (j < aUR[i].AppliesTo.Length) { dr[5] += "<br/>"; } } } dt.Rows.Add(dr); } } dv = new DataView(dt); return dv; }
public void Process_AddEdit() { if (this.m_iID > 0) { aUserRank = cContent.SelectUserRank(this.m_iID); urUserRank = aUserRank[0]; } else { urUserRank = new UserRank(); } urUserRank.Name = EkFunctions.HtmlEncode(Request.Form[txt_name.UniqueID]).Trim(); urUserRank.IconImage = Strings.Trim(Request.Form[txt_icon_image.UniqueID]); urUserRank.StartGroup = System.Convert.ToBoolean(chk_isstart.Checked); if (chk_isladder.Checked) // IsNumeric(Request.Form(txt_posts.UniqueID)) Then { if (urUserRank.StartGroup == true) { urUserRank.Posts = 1; } else { urUserRank.Posts = Convert.ToInt32(Request.Form[txt_posts.UniqueID]); } } else { urUserRank.Posts = -1; } urUserRank.AppliesTo = (FolderData[])Array.CreateInstance(typeof(FolderData), 1); urUserRank.AppliesTo[0] = new FolderData(); if (m_iBoardID > 0) { urUserRank.AppliesTo[0].Id = this.m_iBoardID; } else { urUserRank.AppliesTo[0].Id = Convert.ToInt64(drp_boards.SelectedValue); } urUserRank = cContent.AddEditUserRank(urUserRank); if (this.m_iID > 0) // edit { Response.Redirect((string)("userranks.aspx?boardid=" + this.m_iBoardID.ToString() + "&action=view&id=" + this.m_iID.ToString()), false); } else // add { Response.Redirect((string)("userranks.aspx?boardid=" + this.m_iBoardID.ToString()), false); } }