public async Task <ActionResult> SearchCompaniesHouse(SearchCompaniesHouseModel viewModel) { if (!viewModel.SearchText.IsNullOrEmpty()) { if (viewModel.SearchText.IsInteger()) { viewModel.Results = await _companiesHouseService.SearchByCompaniesHouseNumber(viewModel.SearchText); } else { viewModel.Results = await _companiesHouseService.SearchByName(viewModel.SearchText, viewModel.StartIndex, viewModel.PageSize); } viewModel.NotFound = !viewModel.Results.Items.Any(); if (viewModel.Results.Count == 1) { return(RedirectToAction("CreateAcademyTrust", "Group", new { companiesHouseNumber = viewModel.Results.Items.First().Number, area = "Groups" })); } } return(View(viewModel)); }
public async Task <ActionResult> SearchCompaniesHouse(SearchCompaniesHouseModel viewModel) { var permission = await _securityService.GetCreateGroupPermissionAsync(User); if (!permission.GroupTypes.Any(x => x == GT.MultiacademyTrust || x == GT.SingleacademyTrust)) { throw new PermissionDeniedException("Current principal does not have the required permissions."); } if (!viewModel.SearchText.IsNullOrEmpty()) { if (viewModel.SearchText.IsInteger()) { viewModel.Results = await _companiesHouseService.SearchByCompaniesHouseNumber(viewModel.SearchText); } else { viewModel.Results = await _companiesHouseService.SearchByName(viewModel.SearchText, viewModel.StartIndex, viewModel.PageSize); } if (viewModel.Results.Count == 0) { ModelState.AddModelError(nameof(viewModel.SearchText), "We could not find any companies matching your search criteria"); } else if (viewModel.Results.Count == 1) { return(RedirectToAction("CreateAcademyTrust", "Group", new { companiesHouseNumber = viewModel.Results.Items.First().Number, area = "Groups" })); } } if (viewModel.Search && viewModel.SearchText.IsNullOrEmpty()) { ModelState.AddModelError(nameof(viewModel.SearchText), "The SearchText field is required."); } return(View(viewModel)); }