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; } }
// 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; } }
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; }
// 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++; } } }
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; }