示例#1
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));
        }
示例#2
0
        public async Task <IActionResult> EnterUkprn()
        {
            ModelState.Clear();
            var model = new AddOrganisationViaUkprnViewModel();

            var addOrganisationModel = _sessionService.GetAddOrganisationDetails();

            if (addOrganisationModel?.UKPRN != null)
            {
                model.UKPRN = addOrganisationModel.UKPRN.Trim();
            }
            return(View("~/Views/Roatp/EnterUkprn.cshtml", model));
        }
        public void Validator_passes_valid_ukprn()
        {
            var errors = new List <ValidationErrorDetail>();

            _roatpOrganisationValidator.Setup(x => x.IsValidUKPRN(It.IsAny <string>())).Returns(errors);
            _viewModel = new AddOrganisationViaUkprnViewModel {
                UKPRN = "11112222"
            };

            var validator        = new AddOrganisationViaUkprnViewModelValidator(_roatpOrganisationValidator.Object, _apiClient.Object);
            var validationResult = validator.Validate(_viewModel);

            Assert.AreEqual(0, validationResult.Errors.Count);
        }
        public void Validator_fails_invalid_ukprn()
        {
            var errors = new List <ValidationErrorDetail>
            {
                new ValidationErrorDetail
                {
                    Field        = "ukprn",
                    ErrorMessage = "wrong length"
                }
            };

            _roatpOrganisationValidator.Setup(x => x.IsValidUKPRN(It.IsAny <string>())).Returns(errors);
            _viewModel = new AddOrganisationViaUkprnViewModel {
                UKPRN = "111222"
            };

            var validator        = new AddOrganisationViaUkprnViewModelValidator(_roatpOrganisationValidator.Object, _apiClient.Object);
            var validationResult = validator.Validate(_viewModel);

            Assert.AreEqual(1, validationResult.Errors.Count);
        }