/* The GetDomainQuestions MessageHandler * It handles messages of GET_DOMAIN_QUESTIONS_REQUEST type. */ private static void GetDomainQuestions(RMessage message, TcpClient connection) { Console.WriteLine("GetDomainQuestions"); List <QuestionData> questions = QuestionConnector.GetDomainQuestions((DomainData)message.Data); RMessage replyMessage = new RMessage(MessageType.GET_DOMAIN_QUESTIONS_REPLY, questions); ServerCore.GetWorkerByConnection(connection).SendMessage(replyMessage); }
/* 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 ChangeQuestionStatus MessageHandler * It handles messages of CHANGE_QUESTION_STATUS_REQUEST type. */ private static void ChangeQuestionStatus(RMessage message, TcpClient connection) { Console.WriteLine("ChangeQuestionStatus"); QuestionData question = QuestionConnector.ChangeQuestionStatus(((QuestionData)message.Data).Id); RMessage replyMessage = new RMessage(MessageType.CHANGE_QUESTION_STATUS_REPLY, question); List <ClientWorker> allWorkers = ServerCore.GetAllWorkers(); foreach (ClientWorker workersIterator in allWorkers) { workersIterator.SendMessage(replyMessage); } }
/* The AddReference MessageHandler * It handles messages of ADD_REFERENCE_REQUEST type. */ private static void AddReference(RMessage message, TcpClient connection) { Console.WriteLine("AddReference"); List <UInt32> ids = (List <UInt32>)message.Data; QuestionConnector.AddReference(ids); RMessage replyMessage = new RMessage(MessageType.ADD_QUESTION_REFERENCE_REPLY, null); //ServerCore.GetWorkerByConnection(connection).SendMessage(replyMessage); List <ClientWorker> allWorkers = ServerCore.GetAllWorkers(); foreach (ClientWorker workersIterator in allWorkers) { workersIterator.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)); } }