예제 #1
0
 /// <summary>
 /// returns default array of questions with options
 /// </summary>
 /// <param name="surveyId"></param>
 /// <param name="resultCode"></param>
 /// <returns></returns>
 public QuestionWithOptionsResponse[] GetQuestionsBySurveyId(int surveyId, out Errors resultCode)
 {
     try
     {
         var result = new List <QuestionWithOptionsResponse>();
         if (!_dbManager.SurveyExists(surveyId))
         {
             resultCode = Errors.INVALID_SURVEY_ID;
             return(null);
         }
         if (!_dbManager.QuestionsExist(surveyId))
         {
             resultCode = Errors.SURVEY_IS_EMPTY;
             return(null);
         }
         IEnumerable <Question> questions = null;
         IEnumerable <Option>   options   = null;
         _dbManager.GetQuestionsBySurveyId(surveyId, out questions, out options);
         if (questions != null)
         {
             foreach (var question in questions)
             {
                 if (options != null)
                 {
                     var tempOptions = new List <OptionFull>();
                     foreach (var option in options)
                     {
                         if (option.QuestionId == question.Id)
                         {
                             tempOptions.Add(new OptionFull(option));
                         }
                     }
                     var resultOptions = tempOptions.ToArray();
                     result.Add(new QuestionWithOptionsResponse(question, resultOptions));
                     tempOptions.Clear();
                 }
             }
         }
         resultCode = Errors.OK;
         return(result.ToArray());
     }
     catch (Exception ex)
     {
         _logger.Error(ex.Message);
         resultCode = Errors.QUESTION_MANAGER_ERROR;
         return(null);
     }
 }