예제 #1
0
        public async Task <SurveyViewModel> Get(string id)
        {
            try
            {
                var listId = new List <string> {
                    "Id"
                };
                var listSurveyId = new List <string> {
                    "SurveyId"
                };
                var listQuestionId = new List <string> {
                    "QuestionId"
                };

                var paraId       = APIProvider.APIGeneratorParameter(listId, id);
                var paraSurveyId = APIProvider.APIGeneratorParameter(listSurveyId, id);

                //Get & Map survey
                var source = await _survey.SingleQuery(paraId);

                var dest = Mapper.Map <SurveyViewModel>(source);

                //Get & Map questions of survey
                var questions = await _survey.QuestionsQuery(paraSurveyId);

                dest.SurveyQuestionsModel = Mapper.Map <List <SurveyQuestionsViewModel> >(questions);

                //Get & Map answers of question
                foreach (var surveyquestion in dest.SurveyQuestionsModel)
                {
                    var paraQuestionId = APIProvider.APIGeneratorParameter(listQuestionId, surveyquestion.Id);
                    var answers        = await _survey.AnswersQuery(paraQuestionId);

                    surveyquestion.SurveyAnswersModel = Mapper.Map <List <SurveyAnswersViewModel> >(answers);
                }
                return(dest);
            }
            catch (Exception ex)
            {
                throw ex.GetBaseException();
            }
        }