@using Newtonsoft.Json @model UserResponsesViewModel @{ ViewData["Title"] = "User Responses"; }

Back to list

@Model.UserName (@Model.UserEmail)

Total responses: @Model.Responses.Count()

PDF Reports Excel Reports

@foreach (var response in Model.Responses) {
@response.Questionnaire.Title
@response.Questionnaire.Title
Submitted on: @response.SubmissionDate

Total questions: @response.Questionnaire.Questions.Count()

PDF report Excel report
@foreach (var question in response.Questionnaire.Questions.OrderBy(q => q.Id)) { var responseDetail = response.ResponseDetails.FirstOrDefault(rd => rd.QuestionId == question.Id); }
Question Status Response
@question.Text
Type: @question.Type
@if (responseDetail != null) { @switch (responseDetail.Status) { case ResponseStatus.Answered:
✅ Answered
break; case ResponseStatus.Shown:
⚠️ Shown but not answered
Question was displayed but left blank
break; case ResponseStatus.Skipped:
⏭️ Skipped
@responseDetail.SkipReason
break; } } else {
❓ No response data
Status unknown
}
@if (responseDetail != null && responseDetail.Status == ResponseStatus.Answered) { @if (responseDetail.QuestionType == QuestionType.Text || responseDetail.QuestionType == QuestionType.Slider || responseDetail.QuestionType == QuestionType.Open_ended) {
Answer: @responseDetail.TextResponse
} else if (responseDetail.ResponseAnswers.Any()) {
@foreach (var answer in responseDetail.ResponseAnswers) { var answerText = question.Answers.FirstOrDefault(a => a.Id == answer.AnswerId)?.Text; @answerText }
} } else { No response provided }
}
@section Scripts { }