/* The AddUserVote MessageHandler * It handles messages of ADD_USER_VOTE_REQUEST type. */ private static void AddUserVote(RMessage message, TcpClient connection) { Console.WriteLine("AddUserVote"); // Get the vote data from the message UserVoteData vote = (UserVoteData)message.Data; // Update the voter's rank UserVoteData rating = UserVoteConnector.CheckUserVote(vote); if (rating == null) { UserConnector.UpdateUserRank(vote.Id_voter_user, Ranking.VOTE_USER); } // Update the votee's rank UserConnector.VoteUser(vote); // Send the vote back to the client RMessage replyMessage = new RMessage(MessageType.ADD_USER_VOTE_REPLY, vote); ServerCore.GetWorkerByConnection(connection).SendMessage(replyMessage); // Send the updated user rank to all clients UserData user = UserConnector.GetUserById(vote.Id_votee_user); replyMessage = new RMessage(MessageType.RANK_USER_UPDATED, user); List <ClientWorker> allWorkers = ServerCore.GetAllWorkers(); foreach (ClientWorker workersIterator in allWorkers) { workersIterator.SendMessage(replyMessage); } }
public void PostVote(UserVoteData voteData, bool newState, LikedItem item) { if (AppModel.Instance.CurrentUser == null) { AppProvider.PopUpFactory.ShowMessage(AppResources.LoginFirstMessage, AppResources.Warning); return; } UserDialogs.Instance.ShowLoading(AppResources.LoadingSendingVote); string previousVote = voteData.Vote; voteData.SetState(newState); var postVoteTask = new PostEventVoteBackgroundTask(voteData, AppModel.Instance.CurrentUser.VoteData); postVoteTask.ContinueWith((task, result) => { UserDialogs.Instance.HideLoading(); if (result == null) { AppProvider.PopUpFactory.ShowMessage(AppResources.FailedServer, AppResources.Error); voteData.Vote = previousVote; } else { Device.BeginInvokeOnMainThread(() => { UserDialogs.Instance.ShowSuccess(AppResources.SuccessfulPostVote, 1); item.Update(); }); } }); _backgroundWorkers[AppBackgroundWorkerType.UserPostData].Add(postVoteTask); }
private UserVoteData GetVote(EventData eventData, UserVoteType voteType, Speaker speaker = null) { UserVoteData item = null; string userId = AppModel.Instance.CurrentUser == null ? string.Empty : AppModel.Instance.CurrentUser.User.Id; if (AppModel.Instance.CurrentUser != null) { if (speaker == null) { item = AppModel.Instance.CurrentUser.VoteData.Items.Find(temp => temp.Event.Equals(eventData.Id) && temp.User.Equals(userId) && temp.UserVoteType == voteType); } else { item = AppModel.Instance.CurrentUser.VoteData.Items.Find(temp => temp.Event.Equals(eventData.Id) && temp.User.Equals(userId) && temp.UserVoteType == voteType && temp.Subject.Equals(speaker.Id)); } } if (item == null) { item = new UserVoteData(voteType, eventData.Id, userId, speaker); } return(item); }
public void VoteUser(UserData user, int rating) { UserVoteData userVote = new UserVoteData(LoggedInUserModel.Instance.User.Id, user.Id, model.Question.Id, rating); //Create new request RMessage message = new RMessage(MessageType.ADD_USER_VOTE_REQUEST, userVote); //Handle the request to the service Service.Instance.AddMessage(message); }
public void CheckUserVote(UserData user) { UserVoteData voteData = new UserVoteData(LoggedInUserModel.Instance.User.Id, user.Id, model.Question.Id, 0); //Create new request RMessage message = new RMessage(MessageType.CHECK_USER_VOTE_REQUEST, voteData); //Handle the request to the service Service.Instance.AddMessage(message); }
/* The CheckUserVote MessageHandler * It handles messages of CHECK_USER_VOTE_REQUEST type. */ private static void CheckUserVote(RMessage message, TcpClient connection) { Console.WriteLine("CheckUserVote"); UserVoteData userVote = (UserVoteData)message.Data; UserVoteData rating = UserVoteConnector.CheckUserVote(userVote); RMessage replyMessage; replyMessage = new RMessage(MessageType.CHECK_USER_VOTE_REPLY, rating); ServerCore.GetWorkerByConnection(connection).SendMessage(replyMessage); }
private LikedItem GetSpeakerItem(UserVoteData voteData) { return(new LikedItem(voteData) { UI_ImageHeight = 25, UI_NameFontSize = 14, UI_TextYPosition = 4, UI_LikeXPosition = AppProvider.Screen.ConvertPixelsToDp(AppProvider.Screen.Width) - 70, UI_DislikeXPosition = AppProvider.Screen.ConvertPixelsToDp(AppProvider.Screen.Width) - 40 }); }
private LikedItem GetEventItem(UserVoteData voteData) { return(new LikedItem(voteData) { UI_ImageHeight = 40, UI_NameFontSize = 20, UI_TextYPosition = 10, UI_LikeXPosition = AppProvider.Screen.ConvertPixelsToDp(AppProvider.Screen.Width) - 100, UI_DislikeXPosition = AppProvider.Screen.ConvertPixelsToDp(AppProvider.Screen.Width) - 50 }); }
/* * Callback functions section (for asynchronous actions). * These methods will be triggered by the Context. */ #region callbacks public void OnUserVoteAdded(RMessage message) { UserVoteData vote = (UserVoteData)message.Data; if (model.My_votes.ContainsKey(vote.Id_votee_user)) { model.My_votes[vote.Id_votee_user] = vote.Value_user_vote; } else { model.My_votes.Add(vote.Id_votee_user, vote.Value_user_vote); } UserVoteChecked(model); }
public void Update(List <UserVoteData> result) { foreach (UserVoteData voteData in result) { UserVoteData current = Model.Find(temp => temp.Subject.Equals(voteData.Subject)); if (current != null && current.UpdatedAtTime < voteData.UpdatedAtTime) { current.UpdateWithItem(voteData); LikedItem item = Items.Find(temp => temp.VoteData.Subject.Equals(current.Subject)); item.Update(); } } }
public void OnUserVoteChecked(RMessage message) { if (message.Data != null) { UserVoteData userVote = (UserVoteData)message.Data; if (model.My_votes.ContainsKey(userVote.Id_votee_user)) { model.My_votes[userVote.Id_votee_user] = userVote.Value_user_vote; } else { model.My_votes.Add(userVote.Id_votee_user, userVote.Value_user_vote); } UserVoteChecked(model); } }
public static void VoteUser(UserVoteData vote) { UserVoteData voteReply = UserVoteConnector.CheckUserVote(vote); double adjustment; if (voteReply != null) { adjustment = Adjust(voteReply.Value_user_vote); UpdateUserRank(voteReply.Id_votee_user, -adjustment); UserVoteConnector.DeleteUserVote(voteReply); } UserVoteConnector.InsertUserVote(vote); adjustment = Adjust(vote.Value_user_vote); UpdateUserRank(vote.Id_votee_user, adjustment); }
public LikedItem(UserVoteData voteData) { VoteData = voteData; }