public async Task <IActionResult> AddOrganisation(AddOrganisationViewModel model)
        {
            if (model == null)
            {
                model = new AddOrganisationViewModel();
            }

            model.ProviderTypes = await _apiClient.GetProviderTypes();

            _sessionService.SetAddOrganisationDetails(model);

            return(View(model));
        }
示例#2
0
        public async Task <IActionResult> UkprnPreview(AddOrganisationViaUkprnViewModel model)
        {
            if (!IsRedirectFromConfirmationPage() && !ModelState.IsValid)
            {
                var addOrganisationModel = _sessionService.GetAddOrganisationDetails();
                if (addOrganisationModel?.UKPRN != null)
                {
                    model.UKPRN = addOrganisationModel.UKPRN.Trim();
                }

                return(View("~/Views/Roatp/EnterUkprn.cshtml", model));
            }

            AssessorService.Api.Types.Models.UKRLP.UkrlpProviderDetails details;


            try
            {
                _sessionService.SetAddOrganisationDetails(new AddOrganisationViewModel
                {
                    UKPRN = model.UKPRN.Trim()
                });
                var fullProviderDetails = await _apiClient
                                          .GetUkrlpProviderDetails(model.UKPRN.Trim());

                details = _ukrlpProcessingService.ProcessDetails(fullProviderDetails.ToList());
            }
            catch (HttpRequestException ex)
            {
                _logger.LogError(ex, $"Failed to gather organisation details from ukrlp for UKPRN:[{model?.UKPRN}]");
                return(RedirectToAction("UklrpIsUnavailable"));
            }

            if (string.IsNullOrEmpty(details.LegalName))
            {
                return(Redirect("/ukprn-not-found"));
            }

            _sessionService.SetAddOrganisationDetails(new AddOrganisationViewModel
            {
                UKPRN         = model.UKPRN,
                LegalName     = details.LegalName,
                TradingName   = details.TradingName,
                CompanyNumber = details.CompanyNumber,
                CharityNumber = details.CharityNumber
            });

            var vm = new AddOrganisationProviderTypeViewModel
            {
                UKPRN         = model.UKPRN,
                LegalName     = details.LegalName,
                TradingName   = details.TradingName,
                CompanyNumber = details.CompanyNumber,
                CharityNumber = details.CharityNumber
            };

            return(View("~/Views/Roatp/UkprnPreview.cshtml", vm));
        }