// Executes a search on each place search provider private void doPlaceSearch(object parameter) { if (!canDoPlaceSearch(parameter)) { throw new Exception(Strings.CommandNotExecutable); } var placeSearchProviders = SearchProviders.OfType <ArcGISLocatorPlaceSearchProvider>(); foreach (ArcGISLocatorPlaceSearchProvider placeSearchProvider in placeSearchProviders) { placeSearchProvider.Search.Execute(parameter); } }
// Checks whether a search can be executed. Requires that the current search input is // valid for each search provider. private bool canDoPlaceSearch(object parameter) { if (SearchProviders == null) { return(false); } var placeSearchProviders = SearchProviders.OfType <ArcGISLocatorPlaceSearchProvider>(); foreach (ArcGISLocatorPlaceSearchProvider placeSearchProvider in placeSearchProviders) { if (placeSearchProvider.Search.CanExecute(parameter)) // Only need one to be executable { return(true); } } return(false); }