public void Arrange() { _viewModel = new AddOrganisationAddressViewModel(); _request = new CreateOrganisationAddressRequest() { AddressFirstLine = "123, Test Lane", AddressSecondLine = "Test Garden", TownOrCity = "Test Town", County = "Testshire", Postcode = "TE12 3ST" }; _address = $"{_request.AddressFirstLine}, {_request.AddressSecondLine}, " + $"{_request.TownOrCity}, {_request.County}, {_request.Postcode}"; _mediator = new Mock <IMediator>(); _logger = new Mock <ILog>(); _mapper = new Mock <IMapper>(); _hashingService = new Mock <IAccountLegalEntityPublicHashingService>(); _mapper.Setup(x => x.Map <CreateOrganisationAddressRequest>(It.IsAny <AddOrganisationAddressViewModel>())) .Returns(_request); _mediator.Setup(x => x.Send(It.IsAny <CreateOrganisationAddressRequest>())) .Returns(new CreateOrganisationAddressResponse { Address = _address }); _cookieService = new Mock <ICookieStorageService <EmployerAccountData> >(); _orchestrator = new OrganisationOrchestrator(_mediator.Object, _logger.Object, _mapper.Object, _cookieService.Object, _hashingService.Object); }
ReturnConfirmOrganisationDetailsViewIfHashedAccountIdIsNotPresentInTheRouteAndOrganisationAddressIsNotNullOrEmpty( AddOrganisationAddressViewModel request) { if (RouteData.Values[ControllerConstants.AccountHashedIdRouteKeyName] != null || string.IsNullOrEmpty(request.OrganisationAddress)) { return(null); } var organisationDetailsViewModel = _orchestrator.StartConfirmOrganisationDetails(request); return(View(ControllerConstants.ConfirmOrganisationDetailsViewName, organisationDetailsViewModel)); }
public ActionResult AddOrganisationAddress(AddOrganisationAddressViewModel request) { if (request.Address == null) { request.Address = new AddressViewModel(); } var response = new OrchestratorResponse <AddOrganisationAddressViewModel> { Data = request, Status = HttpStatusCode.OK }; return(View("AddOrganisationAddress", response)); }
public ActionResult UpdateOrganisationAddress(AddOrganisationAddressViewModel request) { var response = _orchestrator.AddOrganisationAddress(request); var viewResult = ReturnAddOrganisationAddressViewIfBadRequest(request, response); if (viewResult != null) { return(viewResult); } ActionResult redirectToAction = RedirectToGatewayInformWhenHashedAccountIdIsNotPresentInTheRoute(response); return(redirectToAction ?? View(ControllerConstants.ConfirmOrganisationDetailsViewName, response)); }
public void ThenIfTheOrchestratorResponseIsInvalidTheModelDataIsCorrectlyConstructed() { SetupOrchestratorResponseForABadRequest(); var requestModel = new AddOrganisationAddressViewModel(); var result = CallUpdateOrganisationAddressOnControllerAndReturnResult(requestModel) as ViewResult; var actual = result.Model as OrchestratorResponse <AddOrganisationAddressViewModel>; Assert.AreEqual(requestModel, actual.Data); Assert.AreEqual(HttpStatusCode.BadRequest, actual.Status); Assert.IsNotNull(actual.Exception); Assert.IsNotNull(actual.Data.Address.ErrorDictionary); Assert.AreEqual(1, actual.Data.Address.ErrorDictionary.Count); Assert.IsNotNull(actual.FlashMessage); Assert.AreEqual("a flash message", actual.FlashMessage.Message); }
public virtual OrchestratorResponse <OrganisationDetailsViewModel> AddOrganisationAddress( AddOrganisationAddressViewModel viewModel) { try { var request = _mapper.Map <CreateOrganisationAddressRequest>(viewModel.Address); var response = _mediator.Send(request); return(new OrchestratorResponse <OrganisationDetailsViewModel> { Data = new OrganisationDetailsViewModel { HashedId = viewModel.OrganisationHashedId, Name = viewModel.OrganisationName, Address = response.Address, DateOfInception = viewModel.OrganisationDateOfInception, ReferenceNumber = viewModel.OrganisationReferenceNumber ?? string.Empty, Type = viewModel.OrganisationType, PublicSectorDataSource = viewModel.PublicSectorDataSource, Status = viewModel.OrganisationStatus, Sector = viewModel.Sector } }); } catch (InvalidRequestException e) { return(new OrchestratorResponse <OrganisationDetailsViewModel> { Data = new OrganisationDetailsViewModel { ErrorDictionary = e.ErrorMessages }, Status = HttpStatusCode.BadRequest, Exception = e, FlashMessage = new FlashMessageViewModel { Headline = "Errors to fix", Message = "Check the following details:", ErrorMessages = e.ErrorMessages, Severity = FlashMessageSeverityLevel.Error } }); } }
private ActionResult ReturnAddOrganisationAddressViewIfBadRequest(AddOrganisationAddressViewModel request, OrchestratorResponse <OrganisationDetailsViewModel> response) { if (response.Status != HttpStatusCode.BadRequest) { return(null); } request.Address = request.Address ?? new AddressViewModel(); request.Address.ErrorDictionary = response.Data.ErrorDictionary; var errorResponse = new OrchestratorResponse <AddOrganisationAddressViewModel> { Data = request, Status = HttpStatusCode.BadRequest, Exception = response.Exception, FlashMessage = response.FlashMessage }; return(View(ControllerConstants.AddOrganisationAddressViewName, errorResponse)); }
public ActionResult UpdateOrganisationAddress(AddOrganisationAddressViewModel request) { var response = _orchestrator.AddOrganisationAddress(request); if (response.Status == HttpStatusCode.BadRequest) { request.Address = request.Address ?? new AddressViewModel(); request.Address.ErrorDictionary = response.Data.ErrorDictionary; var errorResponse = new OrchestratorResponse <AddOrganisationAddressViewModel> { Data = request, Status = HttpStatusCode.BadRequest, Exception = response.Exception, FlashMessage = response.FlashMessage }; return(View("AddOrganisationAddress", errorResponse)); } return(View("ConfirmOrganisationDetails", response)); }
public ActionResult AddOrganisationAddress(AddOrganisationAddressViewModel request) { if (!string.IsNullOrEmpty(request.OrganisationAddress)) { var organisationDetailsViewModel = _orchestrator.StartConfirmOrganisationDetails(request); return(View("ConfirmOrganisationDetails", organisationDetailsViewModel)); } if (request.Address == null) { request.Address = new AddressViewModel(); } var response = new OrchestratorResponse <AddOrganisationAddressViewModel> { Data = request, Status = HttpStatusCode.OK }; return(View("AddOrganisationAddress", response)); }
public ActionResult UpdateOrganisationAddress(AddOrganisationAddressViewModel request) { var response = _orchestrator.AddOrganisationAddress(request); var viewResult = ReturnAddOrganisationAddressViewIfBadRequest(request, response); if (viewResult != null) { return(viewResult); } if (RouteData.Values[ControllerConstants.AccountHashedIdRouteKeyName] != null) { return(View(ControllerConstants.ConfirmOrganisationDetailsViewName, response)); } if (response.Data?.Name != null) { _mediatr .SendAsync(new SaveOrganisationData ( new EmployerAccountOrganisationData { OrganisationType = response.Data.Type, OrganisationReferenceNumber = response.Data.ReferenceNumber, OrganisationName = response.Data.Name, OrganisationDateOfInception = response.Data.DateOfInception, OrganisationRegisteredAddress = response.Data.Address, OrganisationStatus = response.Data.Status ?? string.Empty, PublicSectorDataSource = response.Data.PublicSectorDataSource, Sector = response.Data.Sector, NewSearch = response.Data.NewSearch } )); } return(RedirectToAction(ControllerConstants.SummaryActionName, ControllerConstants.EmployerAccountControllerName, response.Data)); }
public ActionResult AddOrganisationAddress(AddOrganisationAddressViewModel request) { var actionResult = ReturnConfirmOrganisationDetailsViewIfHashedAccountIdIsNotPresentInTheRouteAndOrganisationAddressIsNotNullOrEmpty(request); if (actionResult != null) { return(actionResult); } if (request.Address == null) { request.Address = new AddressViewModel(); } var response = new OrchestratorResponse <AddOrganisationAddressViewModel> { Data = request, Status = HttpStatusCode.OK }; return(View(ControllerConstants.AddOrganisationAddressViewName, response)); }
public ActionResult UpdateOrganisationAddress(AddOrganisationAddressViewModel request) { var response = _orchestrator.AddOrganisationAddress(request); if (response.Status == HttpStatusCode.BadRequest) { request.Address = request.Address ?? new AddressViewModel(); request.Address.ErrorDictionary = response.Data.ErrorDictionary; var errorResponse = new OrchestratorResponse <AddOrganisationAddressViewModel> { Data = request, Status = HttpStatusCode.BadRequest, Exception = response.Exception, FlashMessage = response.FlashMessage }; return(View("AddOrganisationAddress", errorResponse)); } CreateOrganisationCookieData(response); return(RedirectToAction("GatewayInform", "EmployerAccount", response.Data)); }
private ActionResult CallAddOrganisationAddressOnControllerAndReturnTheResult(AddOrganisationAddressViewModel viewModel) { return(base.Controller.AddOrganisationAddress(viewModel)); }
public OrchestratorResponse <OrganisationDetailsViewModel> StartConfirmOrganisationDetails(AddOrganisationAddressViewModel request) { return(new OrchestratorResponse <OrganisationDetailsViewModel> { Data = new OrganisationDetailsViewModel { HashedId = request.OrganisationHashedId, Name = request.OrganisationName, Address = request.OrganisationAddress, DateOfInception = request.OrganisationDateOfInception, ReferenceNumber = request.OrganisationReferenceNumber ?? string.Empty, Type = request.OrganisationType, PublicSectorDataSource = request.PublicSectorDataSource, Status = request.OrganisationStatus, Sector = request.Sector } }); }