public async Task <ActionResult> Questions([FromBody] QuestionRequest request) { RequestHelpFormVariant requestHelpFormVariant = Enum.Parse <RequestHelpFormVariant>(request.FormVariant); RequestHelpFormStage requestHelpFormStage = Enum.Parse <RequestHelpFormStage>(request.FormStage); SupportActivities supportActivity = Enum.Parse <SupportActivities>(request.SupportActivity); QuestionsViewModel questionsViewModel = new QuestionsViewModel() { Questions = await _requestHelpBuilder.GetQuestionsForTask(requestHelpFormVariant, requestHelpFormStage, supportActivity, request.GroupId) }; questionsViewModel = questionsViewModel.GetQuestionsByLocation(request.Position); foreach (var question in questionsViewModel.Questions) { var matchedAnswer = request.Answers.Where(x => x.Id == question.ID && !string.IsNullOrEmpty(x.Answer)).FirstOrDefault(); if (matchedAnswer != null) { question.Model = matchedAnswer.Answer; } } return(PartialView("_Questions", questionsViewModel)); }
private async Task <QuestionsViewModel> UpdateQuestionsViewModel(QuestionsViewModel previousQuestionsViewModel, RequestHelpFormVariant requestHelpFormVariant, RequestHelpFormStage requestHelpFormStage, SupportActivities selectedSupportActivity, int groupId) { QuestionsViewModel updatedQuestionsViewModel = new QuestionsViewModel() { Questions = await _requestHelpBuilder.GetQuestionsForTask(requestHelpFormVariant, requestHelpFormStage, selectedSupportActivity, groupId) }; if (previousQuestionsViewModel != null) { foreach (RequestHelpQuestion question in updatedQuestionsViewModel.Questions) { var matchedQuestion = previousQuestionsViewModel.Questions.Where(pq => pq.ID == question.ID && !string.IsNullOrEmpty(pq.Model)).FirstOrDefault(); if (matchedQuestion != null) { question.Model = matchedQuestion.Model; } } } return(updatedQuestionsViewModel); }