public int[] GetQuestionResults(int questionID)
        {
            var pollRepository = new PollRepository(session);
            var questionRepository = new QuestionRepository(session);
            var question = questionRepository.GetQuestionByID<Question>(questionID);
            IDictionary<String, int> responses = new Dictionary<String, int>();
            IList<String> correctOptions = new List<String>();
            int[] responseStatistics = new int[2];
            var poll = pollRepository.GetPollContainingQuestion(question);

            if (question.type == QuestionType.Numeric)
            {
                // If the question is numeric
                var numericQuestion = questionRepository.GetQuestionByID<NumericQuestion>(questionID);

                int numCorrect = 0;
                int numIncorrect = 0;

                foreach (var response in numericQuestion.responses)
                {

                    // Check if the answer is correct
                    if ((Convert.ToInt32(response.response) < numericQuestion.lessThan) &&
                        (Convert.ToInt32(response.response) > numericQuestion.greaterThan))
                    {
                        numCorrect++;
                    }
                    else
                    {
                        numIncorrect++;
                    }
                }

                responses.Add("Correct [" + numericQuestion.greaterThan.ToString() +
                            " - " + numericQuestion.lessThan.ToString() + "]", numCorrect);
                responses.Add("Incorrect", numIncorrect);
                responseStatistics[0] = numCorrect + numIncorrect;
                responseStatistics[1] = numCorrect;
            }
            else if (question.type == QuestionType.Alphanumeric)
            {
                // If the question is alphanumeric
                var alphaQuestion = questionRepository.GetQuestionByID<AlphanumericQuestion>(questionID);

                //  Get correct responses
                int numCorrect = 0;
                int numIncorrect = 0;
                int total = 0;

                foreach (var response in alphaQuestion.responses)
                {

                    foreach (var answer in alphaQuestion.answers)
                    {
                        if (response.response.Equals(answer.answer))
                        {
                            numCorrect++;
                        }
                    }
                    total++;
                }

                // Build a string of correct answers
                String correctAnswers = "";
                foreach (var answer in alphaQuestion.answers)
                {
                    if (correctAnswers != "")
                    {
                        correctAnswers += ", ";
                    }
                    correctAnswers += answer.answer;
                }

                responses.Add("Correct [" + correctAnswers + "]", numCorrect);
                numIncorrect = total - numCorrect;
                responses.Add("Incorrect", numIncorrect);
                responseStatistics[0] = total;
                responseStatistics[1] = numCorrect;
            }
            else
            {
                var multipleQuestion = questionRepository.GetQuestionByID<MultipleChoiceQuestion>(questionID);
                int numCorrect = 0;
                int total = 0;

                foreach (var option in multipleQuestion.options)
                {
                    total += option.responses.Count;
                    if (option.correctCurrent)
                    {
                        numCorrect += option.responses.Count;
                    }
                }
                total = total / multipleQuestion.allowedAnswers;
                numCorrect = numCorrect / multipleQuestion.allowedAnswers;
                responseStatistics[0] = total;
                responseStatistics[1] = numCorrect;
            }
            return responseStatistics;
        }