/* The GetQuestion MessageHandler * It handles messages of GET_QUESTION_REQUEST type. */ private static void GetQuestion(RMessage message, TcpClient connection) { Console.WriteLine("GetQuestion"); QuestionData question = QuestionConnector.GetQuestion((UInt32)(message.Data)); RMessage replyMessage = new RMessage(MessageType.GET_QUESTION_REPLY, question); ServerCore.GetWorkerByConnection(connection).SendMessage(replyMessage); }
/* The AddQuestion MessageHandler * It handles messages of ADD_QUESTION_REQUEST type. */ private static void AddQuestion(RMessage message, TcpClient connection) { Console.WriteLine("AddQuestion"); List <Object> data = (List <Object>)message.Data; QuestionData question0 = (QuestionData)data[0]; List <DomainData> domains = (List <DomainData>)data[1]; QuestionConnector.AddQuestion(question0); UserConnector.UpdateUserRank(question0.Owner, Ranking.ADD_QUESTION); UInt32 id = (UInt32)(Int64Connector.GetLastInsertId()); QuestionData question = QuestionConnector.GetQuestion(id); QuestionConnector.AddDomainQuestion(id, domains); List <ClientWorker> allWorkers = ServerCore.GetAllWorkers(); foreach (ClientWorker workersIterator in allWorkers) { workersIterator.SendMessage(new RMessage(MessageType.ADD_QUESTION_REPLY, question)); } }