public async Task <IActionResult> RemovePscDetails(ConfirmRemovePersonInControlViewModel model)
 {
     return(await RemoveItemFromPscsList(
                model,
                RoatpWorkflowPageIds.WhosInControl.AddPeopleInControl,
                RoatpYourOrganisationQuestionIdConstants.AddPeopleInControl,
                RoatpWorkflowQuestionTags.AddPeopleInControl,
                "ConfirmPeopleInControl",
                model.BackAction));
 }
Esempio n. 2
0
        private IActionResult ConfirmRemovalOfPersonInControl(Guid applicationId, string name, string actionName, string backActionName)
        {
            var model = new ConfirmRemovePersonInControlViewModel
            {
                ApplicationId = applicationId,
                Name          = name,
                ActionName    = actionName,
                BackAction    = backActionName,
                GetHelpAction = actionName
            };

            PopulateGetHelpWithQuestion(model, actionName);

            return(View("~/Views/Roatp/WhosInControl/ConfirmPscRemoval.cshtml", model));
        }
        private async Task <IActionResult> RemoveItemFromPscsList(ConfirmRemovePersonInControlViewModel model, string pageId, string questionId, string questionTag, string redirectAction, string backAction)
        {
            if (String.IsNullOrEmpty(model.Confirmation))
            {
                model.ErrorMessages = new List <ValidationErrorDetail>
                {
                    new ValidationErrorDetail
                    {
                        Field        = "Confirmation",
                        ErrorMessage = $"Tell us if you want to remove {model.Name}"
                    }
                };
                model.BackAction = backAction;

                return(View("~/Views/Roatp/WhosInControl/ConfirmPscRemoval.cshtml", model));
            }

            if (model.Confirmation != "Y")
            {
                return(RedirectToAction(redirectAction, new { model.ApplicationId }));
            }

            var pscData = await _tabularDataRepository.GetTabularDataAnswer(model.ApplicationId, questionTag);

            if ((pscData == null) || (model.Index < 0 || model.Index + 1 > pscData.DataRows.Count))
            {
                return(RedirectToAction(redirectAction, new { model.ApplicationId }));
            }

            pscData.DataRows.RemoveAt(model.Index);

            var whosInControlSection = await _qnaApiClient.GetSectionBySectionNo(model.ApplicationId, RoatpWorkflowSequenceIds.YourOrganisation, RoatpWorkflowSectionIds.YourOrganisation.WhosInControl);

            var result = await _tabularDataRepository.SaveTabularDataAnswer(
                model.ApplicationId,
                whosInControlSection.Id,
                pageId,
                questionId,
                pscData);

            return(RedirectToAction(redirectAction, new { model.ApplicationId }));
        }