コード例 #1
0
        public async Task <IActionResult> GetUserResponseList(string surveyName, string userName)
        {
            if (string.IsNullOrEmpty(surveyName) && string.IsNullOrEmpty(userName))
            {
                return(ValidationProblem(MessageInfo.UserResponse_WrongData));
            }

            AppUser user = await userManager.FindByNameAsync(userName);

            if (user == null)
            {
                return(NotFound());
            }

            IQueryable <UserResponse> userResponses = context.UserResponses
                                                      .Include(a => a.UserResponseQuestionsAndAnswers)
                                                      .Where(s => s.SurveyName == surveyName && s.UserId == user.Id)
                                                      .OrderByDescending(o => o.CreateDate)
                                                      .Take(3);

            if (!userResponses.Any())
            {
                return(NotFound());
            }

            IList <UserResponseViewModel> userResponsesList = new List <UserResponseViewModel>();

            foreach (var userResponse in userResponses)
            {
                IList <UserResponseQuestionAndAnswerViewModel> questionsAnswersList =
                    new List <UserResponseQuestionAndAnswerViewModel>();
                foreach (var questionAnswer in userResponse.UserResponseQuestionsAndAnswers)
                {
                    UserResponseQuestionAndAnswerViewModel qa = new UserResponseQuestionAndAnswerViewModel
                    {
                        QuestionText = questionAnswer.QuestionText,
                        AnswerText   = questionAnswer.AnswerText,
                        QuestionNo   = questionAnswer.QuestionNo
                    };
                    questionsAnswersList.Add(qa);
                }
                UserResponseViewModel viewModel = new UserResponseViewModel
                {
                    SurveyName     = userResponse.SurveyName,
                    UserName       = userResponse.User.UserName,
                    DateCompleting = userResponse.CreateDate,
                    UserResponseQuestionAndAnswerViewModels = questionsAnswersList
                };
                userResponsesList.Add(viewModel);
            }
            return(Ok(userResponsesList));
        }
コード例 #2
0
        public async Task <IActionResult> GetUserResponse(string surveyName, string userName)
        {
            if (string.IsNullOrWhiteSpace(surveyName) && string.IsNullOrWhiteSpace(userName))
            {
                return(ValidationProblem(MessageInfo.UserResponse_WrongData));
            }

            AppUser user = await userManager.FindByNameAsync(userName);

            if (user == null)
            {
                return(NotFound());
            }

            var userResponse = await context.UserResponses
                               .Include(a => a.UserResponseQuestionsAndAnswers)
                               .OrderBy(o => o.CreateDate)
                               .LastOrDefaultAsync(s => s.SurveyName == surveyName && s.UserId == user.Id);

            if (userResponse == null)
            {
                return(NotFound());
            }

            IList <UserResponseQuestionAndAnswerViewModel> questionsAnswersList =
                new List <UserResponseQuestionAndAnswerViewModel>();

            foreach (var questionAnswer in userResponse.UserResponseQuestionsAndAnswers)
            {
                UserResponseQuestionAndAnswerViewModel qa = new UserResponseQuestionAndAnswerViewModel
                {
                    QuestionText = questionAnswer.QuestionText,
                    AnswerText   = questionAnswer.AnswerText,
                    QuestionNo   = questionAnswer.QuestionNo
                };
                questionsAnswersList.Add(qa);
            }
            UserResponseViewModel viewModel = new UserResponseViewModel
            {
                SurveyName     = userResponse.SurveyName,
                UserName       = userResponse.User.UserName,
                DateCompleting = userResponse.CreateDate,
                UserResponseQuestionAndAnswerViewModels = questionsAnswersList
            };

            return(Ok(viewModel));
        }