public ProviderSiteSearchResultsViewModel SearchProviderSites(ProviderSiteSearchViewModel searchViewModel)
        {
            var viewModel = new ProviderSiteSearchResultsViewModel
            {
                SearchViewModel = searchViewModel
            };

            if (!searchViewModel.PerformSearch)
            {
                return(viewModel);
            }

            var searchParameters = new ProviderSiteSearchParameters
            {
                Id     = searchViewModel.Id,
                EdsUrn = searchViewModel.EdsUrn,
                Name   = searchViewModel.Name
            };

            var providerSites = _providerService.SearchProviderSites(searchParameters);

            viewModel.ProviderSites = providerSites.Select(p => p.Convert()).ToList();

            return(viewModel);
        }
        public ActionResult ProviderSites(ProviderSiteSearchViewModel viewModel)
        {
            var response = _adminMediator.SearchProviderSites(viewModel);

            ModelState.Clear();

            switch (response.Code)
            {
            case AdminMediatorCodes.SearchProviderSites.FailedValidation:
                response.ValidationResult.AddToModelState(ModelState, "SearchViewModel");
                return(View(response.ViewModel));

            case AdminMediatorCodes.SearchProviderSites.Ok:
                return(View(response.ViewModel));

            default:
                throw new InvalidMediatorCodeException(response.Code);
            }
        }
        public MediatorResponse <ProviderSiteSearchResultsViewModel> SearchProviderSites(ProviderSiteSearchViewModel searchViewModel)
        {
            var validatonResult = _providerSiteSearchViewModelServerValidator.Validate(searchViewModel);

            if (!validatonResult.IsValid)
            {
                return(GetMediatorResponse(AdminMediatorCodes.SearchProviderSites.FailedValidation, new ProviderSiteSearchResultsViewModel {
                    SearchViewModel = searchViewModel
                }, validatonResult));
            }

            var viewModel = _providerProvider.SearchProviderSites(searchViewModel);

            return(GetMediatorResponse(AdminMediatorCodes.SearchProviderSites.Ok, viewModel));
        }