public static void VoteResource(ResourceVoteData oldResVote, ResourceVoteData resVote) { ResourceData res = GetResource(resVote.Id_Resource); double adjustment = 0; if (oldResVote != null) { if (oldResVote.Value < 3) { adjustment += (double)(3 - oldResVote.Value) * Ranking.RESOURCE_VOTE_POINT_VALUE; } else { adjustment += -(double)(oldResVote.Value - 2) * Ranking.RESOURCE_VOTE_POINT_VALUE; } } if (resVote.Value < 3) { adjustment += -(double)(3 - resVote.Value) * Ranking.RESOURCE_VOTE_POINT_VALUE; } else { adjustment += (double)(resVote.Value - 2) * Ranking.RESOURCE_VOTE_POINT_VALUE; } UpdateResourceRank(res, adjustment); }
public void VoteResource(ResourceData resource, int value) { model.My_Votes[resource.Id] = value; ResourceVoteData resVote = new ResourceVoteData(resource.Id, LoggedInUserModel.Instance.User.Id, value); RMessage msg = new RMessage(MessageType.VOTE_RESOURCE_REQUEST, resVote); Service.Instance.AddMessage(msg); CheckResourceVote(resource); }
/* The CheckResourceVote MessageHandler * It handles messages of RANK_CHECK_RESOURCE_VOTE_REQUEST type. */ private static void CheckResourceVote(RMessage message, TcpClient connection) { Console.WriteLine("CheckResourceVote"); UserData usr = (UserData)(((List <Object>)message.Data)[0]); ResourceData res = (ResourceData)(((List <Object>)message.Data)[1]); ResourceVoteData resVote = ResourceVoteConnector.CheckResourceVote(usr, res); List <Object> replyContent = new List <Object>(); replyContent.Add(usr); replyContent.Add(res); replyContent.Add(resVote); RMessage replyMessage = new RMessage(MessageType.RANK_CHECK_RESOURCE_VOTE_REPLY, replyContent); ServerCore.GetWorkerByConnection(connection).SendMessage(replyMessage); }
public void OnCheckResourceVote(RMessage message) { ResourceData res = (ResourceData)(((List <Object>)message.Data)[1]); ResourceVoteData resVote = (ResourceVoteData)(((List <Object>)message.Data)[2]); if (model.My_Votes.ContainsKey(res.Id)) { model.My_Votes[res.Id] = resVote.Value; } else { model.My_Votes.Add(res.Id, resVote.Value); } ResourceVoteChecked(model); }
/* The ResourceVote MessageHandler * It handles messages of VOTE_RESOURCE_REQUEST type. */ private static void ResourceVote(RMessage message, TcpClient connection) { Console.WriteLine("VoteResource"); ResourceVoteData resVote = (ResourceVoteData)message.Data; ResourceVoteData oldResVote = ResourceVoteConnector.UpdateVote(resVote); ResourceConnector.VoteResource(oldResVote, resVote); UserConnector.UpdateUserRank(ServerCore.GetIdByConnection(connection), Ranking.USER_VOTED_RESOURCE_VALUE); ResourceData editedResource = ResourceConnector.GetResource(resVote.Id_Resource); RMessage replyMessage = new RMessage(MessageType.EDIT_RESOURCE_REPLY, editedResource); List <ClientWorker> clientList = ServerCore.GetAllWorkers(); foreach (ClientWorker client in clientList) { client.SendMessage(replyMessage); } }