Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        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 }));
        }
Esempio n. 4
0
        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 }));
        }
Esempio n. 7
0
        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");
        }
Esempio n. 8
0
        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);
        }