public IActionResult EditRegistrationPromptStart(int promptNumber)
        {
            TempData.Clear();

            var centreId = User.GetCentreId();

            var customPrompt = centreRegistrationPromptsService.GetCentreRegistrationPromptsByCentreId(centreId)
                               .CustomPrompts
                               .Single(cp => cp.RegistrationField.Id == promptNumber);

            var data = new EditRegistrationPromptTempData
            {
                PromptNumber  = customPrompt.RegistrationField.Id,
                Prompt        = customPrompt.PromptText,
                Mandatory     = customPrompt.Mandatory,
                OptionsString = NewlineSeparatedStringListHelper.JoinNewlineSeparatedList(customPrompt.Options),
                IncludeAnswersTableCaption = true,
            };

            multiPageFormService.SetMultiPageFormData(
                data,
                MultiPageFormDataFeature.EditRegistrationPrompt,
                TempData
                );

            return(RedirectToAction("EditRegistrationPrompt"));
        }
 public EditRegistrationPromptViewModel(EditRegistrationPromptTempData tempData) : base(
         tempData.OptionsString,
         tempData.Answer,
         tempData.IncludeAnswersTableCaption
         )
 {
     Prompt       = tempData.Prompt;
     PromptNumber = tempData.PromptNumber;
     Mandatory    = tempData.Mandatory;
 }
        public void RegistrationPromptBulkPost_updates_temp_data_and_redirects_to_edit()
        {
            // Given
            var inputViewModel       = new BulkRegistrationPromptAnswersViewModel("Test\r\nAnswer", false, 1);
            var initialEditViewModel = new EditRegistrationPromptViewModel(1, "Prompt", false, "Test");
            var initialTempData      = new EditRegistrationPromptTempData
            {
                PromptNumber  = initialEditViewModel.PromptNumber,
                Prompt        = initialEditViewModel.Prompt,
                Mandatory     = initialEditViewModel.Mandatory,
                OptionsString = initialEditViewModel.OptionsString,
                Answer        = initialEditViewModel.Answer,
                IncludeAnswersTableCaption = initialEditViewModel.IncludeAnswersTableCaption,
            };

            A.CallTo(
                () => multiPageFormService.GetMultiPageFormData <EditRegistrationPromptTempData>(
                    MultiPageFormDataFeature.EditRegistrationPrompt,
                    registrationPromptsController.TempData
                    )
                ).Returns(initialTempData);

            // When
            var result = registrationPromptsController.EditRegistrationPromptBulkPost(inputViewModel);

            // Then
            using (new AssertionScope())
            {
                A.CallTo(
                    () => multiPageFormService.SetMultiPageFormData(
                        A <EditRegistrationPromptTempData> .That.Matches(
                            d => d.PromptNumber == initialTempData.PromptNumber &&
                            d.Prompt == initialTempData.Prompt &&
                            d.Mandatory == initialTempData.Mandatory &&
                            d.Answer == initialTempData.Answer &&
                            d.IncludeAnswersTableCaption == initialTempData.IncludeAnswersTableCaption &&
                            d.OptionsString == inputViewModel.OptionsString
                            ),
                        MultiPageFormDataFeature.EditRegistrationPrompt,
                        registrationPromptsController.TempData
                        )
                    ).MustHaveHappenedOnceExactly();
                result.Should().BeRedirectToActionResult().WithActionName("EditRegistrationPrompt");
            }
        }