public async Task <ActionResult> PcsRemoved(PcsRemovedViewModel viewModel)
        {
            await this.SetBreadcrumb(viewModel.OrganisationId, BreadCrumbConstant.AatfReturn, DisplayHelper.YearQuarterPeriodFormat(this.TempData["currentQuarter"] as Quarter, this.TempData["currentQuarterWindow"] as QuarterWindow));

            if (this.ModelState.IsValid)
            {
                if (viewModel.SelectedValue == "Yes")
                {
                    using (var client = this.apiClient())
                    {
                        var existing = await client.SendAsync(this.User.GetAccessToken(), new GetReturnScheme(viewModel.ReturnId));

                        await client.SendAsync(this.User.GetAccessToken(), new RemoveReturnScheme()
                        {
                            SchemeIds = viewModel.RemovedSchemes, ReturnId = viewModel.ReturnId
                        });

                        return(await this.SaveAndContinue(existing, viewModel.SelectedSchemes, viewModel.ReturnId));
                    }
                }
                else
                {
                    return(AatfRedirect.SelectPcs(viewModel.OrganisationId, viewModel.ReturnId, true));
                }
            }
            else
            {
                return(this.View(viewModel));
            }
        }
        public async void PcsRemovedPost_YesSelectedValue_ReturnsUserToTaskListCallsToSaveSchemesMade()
        {
            var returnId = Guid.NewGuid();

            var reselectedSchemes = PrepareSaveSchemes(returnId);

            var model = new PcsRemovedViewModel()
            {
                ReturnId        = returnId,
                SelectedValue   = "Yes",
                SelectedSchemes = reselectedSchemes,
                RemovedSchemes  = new List <Guid>()
                {
                    Guid.NewGuid()
                }
            };

            var result = await controller.PcsRemoved(model) as RedirectToRouteResult;

            result.RouteValues["returnId"].Should().Be(returnId);
            result.RouteValues["action"].Should().Be("Index");
            result.RouteValues["controller"].Should().Be("AatfTaskList");
            result.RouteName.Should().Be(AatfRedirect.Default);

            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <AddReturnScheme> .That.Matches(p => p.ReturnId == returnId && p.SchemeIds == reselectedSchemes))).MustHaveHappened(Repeated.Exactly.Once);
            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <RemoveReturnScheme> .That.Matches(p => p.SchemeIds == model.RemovedSchemes && p.ReturnId == returnId))).MustHaveHappened(Repeated.Exactly.Once);
        }
        public async Task <ActionResult> PcsRemoved(Guid organisationId, Guid returnId)
        {
            var removedSchemeList = this.TempData[RemovedSchemeList] as List <SchemeData>;
            var selectedSchemes   = this.TempData[SelectedSchemes] as List <Guid>;
            var removedSchemes    = this.TempData[RemovedSchemes] as List <Guid>;

            var model = new PcsRemovedViewModel()
            {
                RemovedSchemeList = removedSchemeList,
                SelectedSchemes   = selectedSchemes,
                RemovedSchemes    = removedSchemes,
                ReturnId          = returnId,
                OrganisationId    = organisationId
            };

            this.TempData[RemovedSchemeList] = removedSchemeList;
            this.TempData[SelectedSchemes]   = selectedSchemes;
            this.TempData[RemovedSchemes]    = removedSchemes;

            using (var client = this.apiClient())
            {
                var @return = await client.SendAsync(this.User.GetAccessToken(), new GetReturn(returnId, false));

                await this.SetBreadcrumb(organisationId, BreadCrumbConstant.AatfReturn, DisplayHelper.YearQuarterPeriodFormat(@return.Quarter, @return.QuarterWindow));
            }
            return(this.View(model));
        }
        public async void PcsRemovedPost_NoSelectedValue_ReturnsToSelectPcs()
        {
            var returnId       = Guid.NewGuid();
            var organisationId = Guid.NewGuid();

            var reselectedSchemes = PrepareSaveSchemes(returnId);

            var model = new PcsRemovedViewModel()
            {
                ReturnId        = returnId,
                SelectedValue   = "No",
                SelectedSchemes = reselectedSchemes,
                RemovedSchemes  = new List <Guid>(),
                OrganisationId  = organisationId
            };

            var result = await controller.PcsRemoved(model) as RedirectToRouteResult;

            result.RouteValues["organisationId"].Should().Be(organisationId);
            result.RouteValues["returnId"].Should().Be(returnId);
            result.RouteValues["action"].Should().Be("Index");
            result.RouteName.Should().Be(AatfRedirect.SelectPcsRouteName);
        }