public async Task <IActionResult> OnPostAsync()
        {
            Question = await _questionService.GetQuestion(new DateTime(DateTime.Today.Year, 12, Id), User, false);

            var selectedAlternative = Question.Alternatives.Where(w => w.Id == SelectedAlternativId).FirstOrDefault();
            var response            = new Response
            {
                Name       = User.Identity.Name,
                Email      = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Email)?.Value,
                Question   = Question,
                Registered = DateTime.UtcNow,
                Answear    = selectedAlternative
            };

            var rs = await _responseService.AddResponse(response);

            return(RedirectToPage("ThankYou"));
        }
        public ActionResult AddResponse(int surveyId, int page, ResponseQuestion response)
        {
            if (response.SelectedOptionId == 0)
            {
                Survey survey = surveyService.GetSurvey(surveyId);

                List <Question> surveyQuestions = questionService.GetQuestionsForSurvey(surveyId).Skip(page).Take(1).ToList();

                survey.Questions = new List <Question>();
                foreach (Question question in surveyQuestions)
                {
                    List <QuestionOption> options = questionService.GetOptionsForQuestion(question.QuestionId);
                    question.Options = new List <QuestionOption>();
                    question.Options.AddRange(options);
                    survey.Questions.Add(question);
                }

                ResponseQuestion resp = new ResponseQuestion()
                {
                    Survey   = survey,
                    Question = surveyQuestions[0],
                };
                ViewBag.errorComplete = "Select an option!";
                response.Survey       = survey;
                ViewBag.page          = page;
                return(View("Views/CompleteSurvey/Index.cshtml", resp));
            }

            QuestionOption questionOption   = questionService.GetOptionById(response.SelectedOptionId);
            Response       responseQuestion = new Response();

            responseQuestion.Survey         = surveyService.GetSurvey(surveyId);
            responseQuestion.QuestionOption = questionOption;
            responseQuestion.Question       = questionOption.Question;
            responseService.AddResponse(responseQuestion);

            page++;
            ViewBag.page = page;

            List <Question> questions = questionService.GetQuestionsForSurvey(surveyId).Skip(page).Take(1).ToList();

            responseQuestion.Survey.Questions = new List <Question>();
            foreach (Question question in questions)
            {
                List <QuestionOption> options = questionService.GetOptionsForQuestion(question.QuestionId);
                question.Options = new List <QuestionOption>();
                question.Options.AddRange(options);
                responseQuestion.Survey.Questions.Add(question);
            }

            if (questions.Count <= 0)
            {
                List <Survey> surveys = surveyService.GetSurveys();
                return(View("Views/CompleteSurvey/CompletedSuccessfully.cshtml", surveys));
            }
            ResponseQuestion respQ = new ResponseQuestion()
            {
                Survey   = responseQuestion.Survey,
                Question = questions[0],
            };

            return(View("Views/CompleteSurvey/Index.cshtml", respQ));
        }