AmazonScrape.MainWindow.Search C# (CSharp) Method

Search() private method

Validates controls, obtains the control values, and begins the asynchronous scraping / parsing / result handling process.
private Search ( ) : void
return void
        private void Search()
        {
            // Validate the search controls.
            Result<bool> result = ValidateControls();

            if (result.ErrorMessage.Length > 0)
            {
                MessageBox.Show(result.ErrorMessage);
                return;
            }

            SearchCriteria searchCriteria = GetSearchCriteria();

            // Replace the search controls with the progress control(s)
            ShowSearchProgressGrid();

            StatusTextBox.Text = "Loading results. Please be patient.";
            Progress.Value = 0;
            ResultGrid.Items.Clear();

            // Stop any previous search if it's still working
            // (in practice this should not be necessary)
            if (_searchManager != null && _searchManager.IsBusy)
            {
                string msg = "Please wait one moment before searching. ";
                MessageBox.Show(msg);
                _searchManager.CancelAsync();
            }

            // Coordinates the actual scraping/parsing/validation/results:
            _searchManager = new SearchManager(searchCriteria,
                Constants.MAX_THREADS);
            _searchManager.ProgressChanged += ScraperProgressChanged;
            _searchManager.RunWorkerCompleted += ScrapeComplete;
            _searchManager.RunWorkerAsync();
        }