Esempio n. 1
0
        public async Task ThenMatchingOrganisationsAreReturned()
        {
            //Arrange
            var payeRef       = "123/4567";
            var aorn          = "aorn";
            var queryResponse = new GetOrganisationsByAornResponse {
                Organisations = new List <Organisation> {
                    new Organisation {
                        Address = new Address()
                    }, new Organisation {
                        Address = new Address()
                    }
                }
            };

            _mediator.Setup(x => x.SendAsync(It.Is <GetOrganisationsByAornRequest>(c => c.PayeRef.Equals(payeRef) && c.Aorn.Equals(aorn)))).ReturnsAsync(queryResponse);

            //Act
            var response = await _orchestrator.GetOrganisationsByAorn(aorn, payeRef);

            //Assert
            Assert.AreEqual(payeRef, response.Data.PayeRef);
            Assert.AreEqual(aorn, response.Data.Aorn);
            Assert.AreEqual(queryResponse.Organisations.Count(), response.Data.Results.Count);
        }
Esempio n. 2
0
        private async Task <ActionResult> PerformSearchPensionRegulatorByAorn(SearchPensionRegulatorByAornViewModel viewModel)
        {
            var userRef = OwinWrapper.GetClaimValue(ControllerConstants.UserRefClaimKeyName);
            var model   = await _searchPensionRegulatorOrchestrator.GetOrganisationsByAorn(viewModel.Aorn, viewModel.PayeRef);

            await _mediatr.SendAsync(new UpdateUserAornLockRequest
            {
                UserRef = userRef,
                Success = model.Data.Results.Count > 0
            });

            switch (model.Data.Results.Count)
            {
            case 0:
            {
                var aornLock = await _mediatr.SendAsync(new GetUserAornLockRequest
                    {
                        UserRef = userRef
                    });

                viewModel.IsLocked          = aornLock.UserAornStatus.IsLocked;
                viewModel.RemainingAttempts = aornLock.UserAornStatus.RemainingAttempts;
                viewModel.AllowedAttempts   = aornLock.UserAornStatus.AllowedAttempts;
                viewModel.RemainingLock     = aornLock.UserAornStatus.RemainingLock;

                return(View(ControllerConstants.SearchUsingAornViewName, viewModel));
            }

            case 1:
            {
                if (await CheckIfPayeSchemeAlreadyInUse(viewModel.PayeRef))
                {
                    return(RedirectToAction(ControllerConstants.PayeErrorActionName, ControllerConstants.EmployerAccountControllerName, new { NotFound = false }));
                }
                await SavePensionRegulatorDataIfItHasAValidName(model.Data.Results.First(), true, false, viewModel.Aorn, viewModel.PayeRef);

                return(RedirectToAction(ControllerConstants.SummaryActionName, ControllerConstants.EmployerAccountControllerName));
            }

            default:
            {
                if (await CheckIfPayeSchemeAlreadyInUse(viewModel.PayeRef))
                {
                    return(RedirectToAction(ControllerConstants.PayeErrorActionName, ControllerConstants.EmployerAccountControllerName, new { NotFound = false }));
                }
                await SavePayeDetails(viewModel.Aorn, viewModel.PayeRef);

                return(View(ControllerConstants.SearchPensionRegulatorResultsViewName, model.Data));
            }
            }
        }