private void ProcessSearch(string searchString) { int routeNumber = 0; bool canConvert = int.TryParse(searchString, out routeNumber); //check if it's a number if (canConvert == true) //it's a route or stop number { int number = int.Parse(searchString); if (number < 1000) //route number { viewModel.SearchByRoute(searchString, SearchByRouteCallback); } else //stop number { viewModel.SearchByStop(searchString, SearchByStopCallback); } } else if (string.IsNullOrEmpty(searchString) == false) // Try to find the location { viewModel.SearchByAddress(searchString, SearchByLocationCallback); } SearchStoryboard.Seek(TimeSpan.Zero); SearchStoryboard.Stop(); this.Focus(); }
private void SearchByLocationCallback(LocationForQuery location) { Dispatcher.BeginInvoke(() => { SearchStoryboard.Seek(TimeSpan.Zero); SearchStoryboard.Stop(); this.Focus(); }); if (location == null) { Dispatcher.BeginInvoke(() => MessageBox.Show(searchErrorMessage, "No results found", MessageBoxButton.OK)); } else { Dispatcher.BeginInvoke(() => { viewModel.CurrentViewState.CurrentRoute = null; viewModel.CurrentViewState.CurrentRouteDirection = null; viewModel.CurrentViewState.CurrentStop = null; viewModel.CurrentViewState.CurrentSearchLocation = location; Navigate(new Uri("/StopsMapPage.xaml", UriKind.Relative)); }); } }
private void SearchByStopCallback(List <Stop> stops) { Dispatcher.BeginInvoke(() => { SearchStoryboard.Seek(TimeSpan.Zero); SearchStoryboard.Stop(); this.Focus(); }); if (stops.Count == 0) { Dispatcher.BeginInvoke(() => MessageBox.Show(searchErrorMessage, "No results found", MessageBoxButton.OK)); } else { Dispatcher.BeginInvoke(() => { viewModel.CurrentViewState.CurrentRoute = null; viewModel.CurrentViewState.CurrentRouteDirection = null; viewModel.CurrentViewState.CurrentStop = stops[0]; viewModel.CurrentViewState.CurrentSearchLocation = null; Navigate(new Uri("/DetailsPage.xaml", UriKind.Relative)); }); } }
private void SearchByRouteCallback(List <Route> routes, Exception error) { Dispatcher.BeginInvoke(() => { SearchStoryboard.Seek(TimeSpan.Zero); SearchStoryboard.Stop(); this.Focus(); }); if (error != null) { viewModel_ErrorHandler(this, new ViewModel.EventArgs.ErrorHandlerEventArgs(error)); } else if (routes.Count == 0) { Dispatcher.BeginInvoke(() => MessageBox.Show(searchErrorMessage, "No results found", MessageBoxButton.OK)); } else { Dispatcher.BeginInvoke(() => { viewModel.CurrentViewState.CurrentRoutes = routes; Navigate(new Uri("/BusDirectionPage.xaml", UriKind.Relative)); }); } }
private void appbar_search_Click(object sender, EventArgs e) { if (SearchPanel.Opacity == 0) { SearchStoryboard.Begin(); SearchInputBox.Focus(); SearchInputBox.SelectAll(); } else { ProcessSearch(SearchInputBox.Text); } }
private void SearchInputBox_LostFocus(object sender, RoutedEventArgs e) { SearchStoryboard.Seek(TimeSpan.Zero); SearchStoryboard.Stop(); this.Focus(); }