/// <summary>
        /// Turn a detail survey response into a survey id with a list of associated questions and answers.
        /// </summary>
        /// <param name="surveyDetailResponse">Has all data regarding the survey</param>
        public void LoadSurvey(GetSurveyDetailsResponse surveyDetailResponse)
        {
            int questionNumber = 0;
            List<QuestionInfo> qList = new List<QuestionInfo>();
            List<QuestionAnswerFlat> qafList = new List<QuestionAnswerFlat>();

            SurveyID = surveyDetailResponse.SurveyDetailsResult.SurveyID;
            foreach(PageInfo surveyPage in surveyDetailResponse.SurveyDetailsResult.PageList)
            {
                foreach(QuestionInfo pageQuestion in surveyPage.QuestionList.OrderBy(e => e.Position))
                {
                    string row = "0";
                    string col = "0";
                    qList.Add(pageQuestion);
                    questionNumber++;
                    foreach (AnswerInfo questionAnswer in pageQuestion.QuestionAnswerList.OrderBy(e => e.Position))
                    {
                        if (questionAnswer.AnswerType == AnswerTypeEnum.Row)
                        {
                            row = questionAnswer.AnswerID;
                        }
                        if (questionAnswer.AnswerType == AnswerTypeEnum.Column)
                        {
                            col = questionAnswer.Column;
                        }
                        QuestionAnswerFlat qaf = new QuestionAnswerFlat();
                        qaf.AnswerID = questionAnswer.AnswerID;
                        qaf.AnswerNumber = questionAnswer.Position;
                        qaf.AnswerText = questionAnswer.Text;
                        qaf.AnswerType = questionAnswer.AnswerType;
                        qaf.AnswerVisible = questionAnswer.Visible;
                        qaf.QuestionID = pageQuestion.QuestionID;
                        qaf.QuestionNumber = questionNumber;
                        qaf.QuestionSubtype = pageQuestion.QuestionType.Subtype;
                        qaf.QuestionText = pageQuestion.Heading;
                        qaf.QuestionType = pageQuestion.QuestionType.Family;
                        qaf.Column = col;
                        qaf.Row = row;
                        qaf.Weight = questionAnswer.Weight;
                        qafList.Add(qaf);
                    }
                }
            }

            QuestionList = qList;
            SurveyWithAnswers = qafList;
        }
 private void DBSurveyResponseUpdate(GetSurveyDetailsResponse surveyDetails, List<QuestionAnswerFlat> surveyWithAnswers)
 {
     string SurveyID = surveyDetails.SurveyDetailsResult.SurveyID;
     foreach(PageInfo pInfo in surveyDetails.SurveyDetailsResult.PageList)
     {
         string PageID = pInfo.PageID;
         string PageHeading = pInfo.Heading;
         int questionsPerPage = 0;
         double pageRankSum = 0;
         foreach(QuestionInfo qInfo in pInfo.QuestionList)
         {
             int partsPerQuestion = 0;
             double questionRankSum = 0;
             if(qInfo.QuestionType.Subtype == QuestionSubtypeEnum.Rating || qInfo.QuestionType.Subtype == QuestionSubtypeEnum.Ranking)
             {
                 List<QuestionAnswerFlat> qRatingsList = surveyWithAnswers.Where(e => e.QuestionID == qInfo.QuestionID).ToList<QuestionAnswerFlat>();
                 foreach(QuestionAnswerFlat qaf in qRatingsList)
                 {
                     if(qaf.AnswerType == AnswerTypeEnum.Row)
                     {
                         questionRankSum += qaf.RankAvg;
                         partsPerQuestion++;
                     }
                 }
             }
             double questionRankAvg = questionRankSum / partsPerQuestion;
             // Write survey results to database.
             //Survey.SurveyResponseUpdate(SurveyID, qInfo.QuestionID, PageHeading, PageID, questionRankAvg, connString);
             questionsPerPage += partsPerQuestion;
             pageRankSum += questionRankSum;
         }
         double pageRankAvg = pageRankSum / questionsPerPage;
         // Write survey page summary to database.
         //Survey.SurveyResponseUpdate(SurveyID, "", PageHeading, PageID, pageRankAvg, connString);
     }
 }