Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }