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)); }
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 })); }
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); }