public ConfirmNewPayeSchemeViewModel(AddNewPayeSchemeViewModel model)
 {
     AccessToken     = model.AccessToken;
     RefreshToken    = model.RefreshToken;
     PayeScheme      = model.PayeScheme;
     HashedAccountId = model.HashedAccountId;
 }
        public async Task ThenTheAddPayeSchemeToAccountIsCalledWithTheCorrectParameters()
        {
            //Arrange
            var expectedAddNewPayeScheme = new AddNewPayeSchemeViewModel {
                AccessToken = "123DFG", HashedAccountId = ExpectedAccountId, PayeName = "123/ABC", RefreshToken = "987TGH"
            };

            _employerAccountPayeOrchestrator.Setup(
                x => x.AddPayeSchemeToAccount(It.IsAny <AddNewPayeSchemeViewModel>(), It.IsAny <string>()))
            .ReturnsAsync(new OrchestratorResponse <AddNewPayeSchemeViewModel>
            {
                Status = HttpStatusCode.OK
            });

            //Act
            await _controller.ConfirmPayeScheme(ExpectedAccountId, expectedAddNewPayeScheme);

            //Assert
            _employerAccountPayeOrchestrator.Verify(x => x.AddPayeSchemeToAccount(It.Is <AddNewPayeSchemeViewModel>(
                                                                                      c => c.AccessToken.Equals(expectedAddNewPayeScheme.AccessToken) &&
                                                                                      c.HashedAccountId.Equals(expectedAddNewPayeScheme.HashedAccountId) &&
                                                                                      c.PayeName.Equals(expectedAddNewPayeScheme.PayeName) &&
                                                                                      c.RefreshToken.Equals(expectedAddNewPayeScheme.RefreshToken)
                                                                                      ), ExpectedUserId));
        }
Exemple #3
0
        public async Task <ActionResult> ConfirmPayeScheme(string hashedAccountId, AddNewPayeSchemeViewModel model)
        {
            var result = await _employerAccountPayeOrchestrator.AddPayeSchemeToAccount(model, OwinWrapper.GetClaimValue("sub"));

            if (result.Status != HttpStatusCode.OK)
            {
                return(View(result));
            }

            var flashMessage = new FlashMessageViewModel
            {
                Severity = FlashMessageSeverityLevel.Success,
                Headline = $"You've added {model.PayeScheme}",
                HiddenFlashMessageInformation = "page-paye-scheme-added"
            };

            AddFlashMessageToCookie(flashMessage);

            return(RedirectToAction("Index", "EmployerAccountPaye", new { model.HashedAccountId }));
        }
Exemple #4
0
        public async Task <ActionResult> ConfirmPayeScheme(string hashedAccountId, AddNewPayeSchemeViewModel model)
        {
            var result = await _employerAccountPayeOrchestrator.AddPayeSchemeToAccount(model, OwinWrapper.GetClaimValue(ControllerConstants.UserRefClaimKeyName));

            if (result.Status != HttpStatusCode.OK)
            {
                return(View(result));
            }

            var payeSchemeName = string.IsNullOrEmpty(model.PayeName) ? "this PAYE scheme" : model.PayeName;

            var flashMessage = new FlashMessageViewModel
            {
                Severity = FlashMessageSeverityLevel.Success,
                Headline = $"{model.PayeScheme} has been added",
                HiddenFlashMessageInformation = "page-paye-scheme-added"
            };

            AddFlashMessageToCookie(flashMessage);

            return(RedirectToAction(ControllerConstants.NextStepsActionName, ControllerConstants.EmployerAccountPayeControllerName, new { model.HashedAccountId }));
        }
        public virtual async Task <OrchestratorResponse <AddNewPayeSchemeViewModel> > AddPayeSchemeToAccount(AddNewPayeSchemeViewModel model, string userId)
        {
            var response = new OrchestratorResponse <AddNewPayeSchemeViewModel> {
                Data = model
            };

            try
            {
                await Mediator.SendAsync(new AddPayeToAccountCommand
                {
                    HashedAccountId = model.HashedAccountId,
                    AccessToken     = model.AccessToken,
                    RefreshToken    = model.RefreshToken,
                    Empref          = model.PayeScheme,
                    ExternalUserId  = userId,
                    EmprefName      = model.PayeName
                });
            }
            catch (UnauthorizedAccessException ex)
            {
                response.Status    = HttpStatusCode.Unauthorized;
                response.Exception = ex;
            }
            catch (InvalidRequestException ex)
            {
                response.Status = HttpStatusCode.BadRequest;
                response.Data.ErrorDictionary = ex.ErrorMessages;
                response.Exception            = ex;
            }

            return(response);
        }