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