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