public async Task <ActionResult> SelectOrganisation(string organisationName, int page = 1) { if (page < 1) { page = 1; } SelectOrganisationViewModel viewModel; if (string.IsNullOrEmpty(organisationName)) { viewModel = new SelectOrganisationViewModel(); } else { var results = await FetchOrganisations(organisationName, page); var matchingOrganistionList = results.Results.ToPagedList(page - 1, pageSize, results.TotalMatchingOrganisations); viewModel = new SelectOrganisationViewModel() { OrganisationName = organisationName, MatchingOrganisations = matchingOrganistionList }; } return(View(viewModel)); }
public async Task<ActionResult> SelectOrganisation(string organisationName, int page = 1) { if (page < 1) { page = 1; } SelectOrganisationViewModel viewModel; if (string.IsNullOrEmpty(organisationName)) { viewModel = new SelectOrganisationViewModel(); } else { var results = await FetchOrganisations(organisationName, page); var matchingOrganistionList = results.Results.ToPagedList(page - 1, pageSize, results.TotalMatchingOrganisations); viewModel = new SelectOrganisationViewModel() { OrganisationName = organisationName, MatchingOrganisations = matchingOrganistionList }; } return View(viewModel); }
public async Task <ActionResult> SelectOrganisation(SelectOrganisationViewModel model, string submitButton) { Guid selectedGuid; if (!Guid.TryParse(submitButton, out selectedGuid) || model.Organisations.SingleOrDefault(o => o.Id == selectedGuid) == null) { return(RedirectToAction("SelectOrganisation", new { organisationName = model.Name })); } try { var response = await client.SendAsync(User.GetAccessToken(), new LinkUserToOrganisation(selectedGuid)); if (response) { return(RedirectToAction("Index", "Home")); } } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } } return(RedirectToAction("SelectOrganisation", new { organisationName = model.Name })); }
public async Task <ActionResult> SelectOrganisation(string organisationName) { var model = new SelectOrganisationViewModel { Name = organisationName }; if (string.IsNullOrEmpty(organisationName)) { model.Organisations = null; } else { var response = await client.SendAsync(User.GetAccessToken(), new FindMatchingOrganisations(organisationName)); if (response == null || response.Count <= 0) { return(RedirectToAction("CreateNewOrganisation", new { organisationName = model.Name })); } model.Organisations = response; } return(View(model)); }
public async Task <IActionResult> Index(Guid requestId) { var tempSupportRequest = await _mediator.Send(new GetTempSupportRequest(requestId)); var dfeOrganisations = await _mediator.Send(new GetDfeOrganisationsRequest(tempSupportRequest.DfeSignInId.Value)); var viewModel = new SelectOrganisationViewModel(dfeOrganisations, requestId, tempSupportRequest.SelectedDfeSignInOrganisationId); return(View("~/Views/RequestSupport/SelectOrganisation.cshtml", viewModel)); }
public async Task <IActionResult> Index(Guid requestId, SelectOrganisationViewModel viewModel) { if (!ModelState.IsValid) { return(RedirectToAction("Index", new { requestId })); } await _mediator.Send(new AddDfESignInOrganisationCommand(requestId, viewModel.SelectedId.Value)); return(RedirectToAction("Index", "CheckYourDetails", new { requestId = requestId })); }
public async Task WhenPostIndexIsCalled_ThenTheCorrectOrganisationIdIsPassedToTheHandler() { var selectedId = Guid.NewGuid(); var vm = new SelectOrganisationViewModel { SelectedId = selectedId }; var result = await _controller.Index(_requestId, vm); await _mediator.Received().Send(Arg.Is <AddDfESignInOrganisationCommand>(request => request.RequestId == _requestId && request.SelectedOrganisationId == selectedId)); result.Should().BeOfType <RedirectToActionResult>(); result.As <RedirectToActionResult>().ActionName.Should().Be("Index"); result.As <RedirectToActionResult>().ControllerName.Should().Be("CheckYourDetails"); }
public async Task WhenPostToIndexWithoutASelectedOrganisation_ThenRedirectedToPageAndHandlerNotCalled() { var vm = new SelectOrganisationViewModel { SelectedId = null }; _controller.ModelState.AddModelError("SelectedId", "Required"); var result = await _controller.Index(_requestId, vm); await _mediator.DidNotReceive().Send(Arg.Is <AddDfESignInOrganisationCommand>(request => request.RequestId == _requestId && request.SelectedOrganisationId == null)); result.Should().BeOfType <RedirectToActionResult>(); result.As <RedirectToActionResult>().ActionName.Should().Be("Index"); }
public ActionResult <SelectOrganisationViewModel> SelectOrganisation([FromQuery] string returnUrl = null, [FromQuery] bool?unauthorized = null) { var organisations = User.GetAvailableOrganisations(); if (organisations.Count == 1 && HttpContext.Session.GetOrganisation() == null) { return(SelectOrganisation(organisations.Single().Id, returnUrl)); } var viewModel = new SelectOrganisationViewModel { Organisations = organisations, CurrentSelectedOrganisation = HttpContext.Session.GetOrganisation(), ReturnUrl = returnUrl, RedirectedFromMiddlewear = unauthorized ?? false }; return(View(viewModel)); }
public async Task<ActionResult> SelectOrganisation(SelectOrganisationViewModel model, string submitButton) { Guid selectedGuid; if (!Guid.TryParse(submitButton, out selectedGuid) || model.Organisations.SingleOrDefault(o => o.Id == selectedGuid) == null) { return RedirectToAction("SelectOrganisation", new { organisationName = model.Name }); } try { var response = await client.SendAsync(User.GetAccessToken(), new LinkUserToOrganisation(selectedGuid)); if (response) { return RedirectToAction("Index", "Home"); } } catch (ApiBadRequestException ex) { this.HandleBadRequest(ex); if (ModelState.IsValid) { throw; } } return RedirectToAction("SelectOrganisation", new { organisationName = model.Name }); }
public async Task<ActionResult> SelectOrganisation(string organisationName) { var model = new SelectOrganisationViewModel { Name = organisationName }; if (string.IsNullOrEmpty(organisationName)) { model.Organisations = null; } else { var response = await client.SendAsync(User.GetAccessToken(), new FindMatchingOrganisations(organisationName)); if (response == null || response.Count <= 0) { return RedirectToAction("CreateNewOrganisation", new { organisationName = model.Name }); } model.Organisations = response; } return View(model); }