public async Task <IActionResult> RemoveManagementHierarchy(ConfirmRemoveManagementHierarchyViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("~/Views/Roatp/ManagementHierarchy/ConfirmManagementHierarchyRemoval.cshtml", model));
            }

            if (model.Confirmation == "Yes" && model.Index >= 0)
            {
                var managementHierarchyData = await _tabularDataRepository.GetTabularDataAnswer(model.ApplicationId, RoatpWorkflowQuestionTags.AddManagementHierarchy);

                if (managementHierarchyData is null || model.Index + 1 > managementHierarchyData.DataRows.Count)
                {
                    return(RedirectToAction("ConfirmManagementHierarchy", new { model.ApplicationId }));
                }

                managementHierarchyData.DataRows.RemoveAt(model.Index);

                var managementHierarchySection = await _qnaApiClient.GetSectionBySectionNo(model.ApplicationId, RoatpWorkflowSequenceIds.DeliveringApprenticeshipTraining, RoatpWorkflowSectionIds.DeliveringApprenticeshipTraining.ManagementHierarchy);

                var result = await _tabularDataRepository.SaveTabularDataAnswer(
                    model.ApplicationId,
                    managementHierarchySection.Id,
                    RoatpWorkflowPageIds.ManagementHierarchy.AddManagementHierarchy,
                    RoatpDeliveringApprenticeshipTrainingQuestionIdConstants.ManagementHierarchy,
                    managementHierarchyData);
            }

            return(RedirectToAction("ConfirmManagementHierarchy", new { model.ApplicationId }));
        }
Esempio n. 2
0
 public async Task <IActionResult> RemoveManagementHierarchy(ConfirmRemoveManagementHierarchyViewModel model)
 {
     return(await RemoveItemFromManagementHierarchy(
                model,
                RoatpWorkflowPageIds.ManagementHierarchy.AddManagementHierarchy,
                RoatpDeliveringApprenticeshipTrainingQuestionIdConstants.ManagementHierarchy,
                RoatpWorkflowQuestionTags.AddManagementHierarchy,
                "ConfirmManagementHierarchy",
                model.BackAction));
 }
        public async Task RemoveManagementHierarchy_Post_ReturnsConfirmManagementHierarchy()
        {
            var model = new ConfirmRemoveManagementHierarchyViewModel {
                ApplicationId = _applicationId, Confirmation = "No"
            };

            var result = await _controller.RemoveManagementHierarchy(model);

            var viewResult = result as RedirectToActionResult;

            viewResult.Should().NotBeNull();
            viewResult.ActionName.Should().Be("ConfirmManagementHierarchy");
        }
Esempio n. 4
0
        public void Arrange()
        {
            _validator = new RemoveManagementHierarchyValidator();

            _viewModel = new ConfirmRemoveManagementHierarchyViewModel
            {
                ApplicationId = Guid.NewGuid(),
                Index         = 1,
                Name          = "FirstName LastName",
                ActionName    = "RemoveManagementHierarchy",
                BackAction    = "ConfirmManagementHierarchy",
                Confirmation  = "Yes"
            };
        }
Esempio n. 5
0
        private IActionResult ConfirmRemovalOfManagementHierarchy(Guid applicationId, string name, string actionName, string backActionName)
        {
            var model = new ConfirmRemoveManagementHierarchyViewModel
            {
                ApplicationId = applicationId,
                Name          = name,
                ActionName    = actionName,
                BackAction    = backActionName,
                GetHelpAction = actionName
            };

            PopulateGetHelpWithQuestion(model, actionName);

            return(View("~/Views/Roatp/ManagementHierarchy/ConfirmManagementHierarchyRemoval.cshtml", model));
        }
        public async Task RemoveManagementHierarchy_HasValidationErrors_ReturnsConfirmManagementHierarchyRemoval()
        {
            var model = new ConfirmRemoveManagementHierarchyViewModel {
                ApplicationId = _applicationId
            };

            _controller.ModelState.AddModelError("Testing", "test message");

            var result = await _controller.RemoveManagementHierarchy(model);

            var viewResult = result as ViewResult;

            viewResult.Should().NotBeNull();
            viewResult.ViewName.Should().Contain("ConfirmManagementHierarchyRemoval.cshtml");
            viewResult.Model.Should().BeEquivalentTo(model);
        }
Esempio n. 7
0
        private async Task <IActionResult> RemoveItemFromManagementHierarchy(ConfirmRemoveManagementHierarchyViewModel 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/ManagementHierarchy/ConfirmManagementHierarchyRemoval.cshtml", model));
            }

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

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

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

            managementHierarchyData.DataRows.RemoveAt(model.Index);

            var managementHierarchySection = await _qnaApiClient.GetSectionBySectionNo(model.ApplicationId, RoatpWorkflowSequenceIds.DeliveringApprenticeshipTraining, RoatpWorkflowSectionIds.DeliveringApprenticeshipTraining.ManagementHierarchy);

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

            return(RedirectToAction(redirectAction, new { model.ApplicationId }));
        }
        public async Task <IActionResult> RemoveManagementHierarchy(Guid applicationId, int index)
        {
            var personTableData = await _tabularDataRepository.GetTabularDataAnswer(applicationId, RoatpWorkflowQuestionTags.AddManagementHierarchy);

            if (personTableData is null || index >= personTableData.DataRows.Count)
            {
                return(RedirectToAction("ConfirmManagementHierarchy", new { applicationId }));
            }

            var model = new ConfirmRemoveManagementHierarchyViewModel
            {
                ApplicationId = applicationId,
                Name          = $"{personTableData.DataRows[index].Columns[0]} {personTableData.DataRows[index].Columns[1]}",
                ActionName    = "RemoveManagementHierarchy",
                BackAction    = "ConfirmManagementHierarchy"
            };

            PopulateGetHelpWithQuestion(model);

            return(View("~/Views/Roatp/ManagementHierarchy/ConfirmManagementHierarchyRemoval.cshtml", model));
        }