示例#1
0
 public bool AddNewQuestion(question prQuestion)
 {
     if (!mQuestionList.ContainsValue(prQuestion))
     {
         if(!mQuestionList.ContainsKey(prQuestion.QuestionID))
             mQuestionList.Add(prQuestion.QuestionID, prQuestion);
         else
             mQuestionList.Add(mQuestionList.Keys.Last() + 1, prQuestion);
         SendQuestionListToTutors();
         return true;
     }
     else
     {
         return false;
     }
 }
示例#2
0
        // Delete a question from the dictionary
        public bool DeleteQuestion(question prQuestion)
        {
            int iQuestionIndex = 0;

            if (mQuestionList.ContainsValue(prQuestion))
            {
                foreach (KeyValuePair<int, question> iQuestion in mQuestionList)
                {
                    if (iQuestion.Value == prQuestion)
                    {
                        iQuestionIndex = iQuestion.Key;
                        break;
                    }
                }

                mQuestionList.Remove(iQuestionIndex);

                return true;
            }
            else
            {
                return false;
            }
        }
示例#3
0
        public string ConvertQuestionToString(question prQuestion)
        {
            string iQuestionString;

            iQuestionString = "Q;" + prQuestion.QuestionID.ToString() + "|" +
                prQuestion.QuestionType + "|" + prQuestion.Question + "|";

            // Some questions may not have answers
            if (prQuestion.PossibleAnswers != null)
            {
                foreach (string iPosAnswer in prQuestion.PossibleAnswers)
                {
                    iQuestionString += iPosAnswer;
                    if (iPosAnswer != "")
                    {
                        iQuestionString += ",";
                    }
                    else
                    {
                        iQuestionString = iQuestionString.Substring(0, iQuestionString.Length - 1);
                        break;
                    }
                }
            }

            iQuestionString += "|" + prQuestion.Answer + ";";

            return iQuestionString;
        }
示例#4
0
        // Sets a question for each user
        public void SetQuestions(question prQuestion)
        {
            int i = 0;

            if (mUsersOnline.Count > 0)
            {
                while (i <= mMaxUserKey)
                {
                    if (mUsersOnline.ContainsKey(i))
                    {
                        // If the user is on an iOS device, iPod Touch/iPhone/iPad, the question needs to be
                        // sent using old string format; due to platforms lack of serialisation libraries.
                        if (mUsersOnline[i].DeviceOS == "iOS")
                        {
                            mUsersOnline[i].CurrQuestionString = ConvertQuestionToString(prQuestion);
                        }
                        else
                        {
                            lock (mLock)
                            {
                                mUsersOnline[i].CurrQuestion = new question();
                                mUsersOnline[i].CurrQuestion.Question = prQuestion.Question;
                                mUsersOnline[i].CurrQuestion.QuestionID = prQuestion.QuestionID;
                                mUsersOnline[i].CurrQuestion.QuestionType = prQuestion.QuestionType;
                                mUsersOnline[i].CurrQuestion.PossibleAnswers = prQuestion.PossibleAnswers;
                                mUsersOnline[i].CurrQuestion.Answer = prQuestion.Answer;
                            }
                        }
                    }
                    i++;
                }
            }
        }
示例#5
0
        public frmMain()
        {
            InitializeComponent();

            mMessageLogger = new MessageLogger();
            mChatManager = new ChatManager();
            mUserManager = new UserManager(mMessageLogger);
            mQuestionManager = new QuestionManager(mUserManager);
            mAnswerManager = new AnswerManager();
            mIOProcessor = new IOProcessor(mMessageLogger, mUserManager,
                mQuestionManager, mAnswerManager, mChatManager);

            //mIOProcessor = new IOProcessor(mMessageLogger, mUserManager);
            mNetwork = new Network(mMessageLogger, mUserManager, mQuestionManager, mAnswerManager, mIOProcessor);

            // Load the registered tutors
            if (!mUserManager.LoadTutors("tutors.xml"))
            {
                mMessageLogger.NewMessage("Can't load file \"tutors.xml\" or the contents in it. " +
                    "Please use the admin tool to recreate it", mMessageLogger.MESSAGE_ERROR);
            }

            mUser = new User();

            mRunning = true;

            mDictionarySerialiser = new DictionarySerialiserMethods();

            // Attempt to load questions from the questions.xml file
            if (LoadQuestions("questions.xml") == false)
            {
                // Add some demo questions if none could be loaded from a file
                question iDemoQuestion = new question();

                // Multi-choice
                iDemoQuestion.QuestionID = 0;
                iDemoQuestion.Question = "How many days in a week?";
                iDemoQuestion.QuestionType = "MC";
                iDemoQuestion.PossibleAnswers = new string[4] { "Ten", "Three", "Seven", "Nine" };
                iDemoQuestion.Answer = "Seven";
                mQuestionManager.AddNewQuestion(iDemoQuestion);

                // True/False
                iDemoQuestion = new question();
                iDemoQuestion.QuestionID = 1;
                iDemoQuestion.Question = "Fire burns?";
                iDemoQuestion.QuestionType = "TF";
                iDemoQuestion.PossibleAnswers = new string[4] { "True", "False", "", "" };
                iDemoQuestion.Answer = "True";
                mQuestionManager.AddNewQuestion(iDemoQuestion);

                // Short Answer
                iDemoQuestion = new question();
                iDemoQuestion.QuestionID = 2;
                iDemoQuestion.Question = "What is 5x5?";
                iDemoQuestion.QuestionType = "SA";
                iDemoQuestion.PossibleAnswers = new string[4] { "", "", "", "" };
                iDemoQuestion.Answer = "";
                mQuestionManager.AddNewQuestion(iDemoQuestion);
            }
            mTimer = new System.Timers.Timer(1000);
            mTimer.Elapsed += new ElapsedEventHandler(TimeElapsed);
            mTimer.Enabled = true;
        }