Example #1
0
        /* 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);
        }
Example #2
0
        /* 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);
        }
Example #3
0
        /* 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);
            }
        }
Example #4
0
        /* 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);
            }
        }
Example #5
0
        /* 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));
            }
        }