C# Class AmazonScrape.SearchManager

Manages the logical workflow of the application. Creates and deploys PageManagers. Returns WorkProgress object to report status and successful results.
Inheritance: System.ComponentModel.BackgroundWorker
Show file Open project: ThomasRush/AmazonScrape Class Usage Examples

Public Methods

Method Description
GetPercentComplete ( ) : int

Returns integer percentage of overall progress, based on the number of retrieved and validated results.

ResultReturned ( object obj, ProgressChangedEventArgs args ) : void

Called by the PageManagers whenever they have a result. Returns the result back to the UI. Also checks and stops work if finished.

SearchManager ( SearchCriteria searchCriteria, int threadCount ) : System

Create and start work on a new search. Spawns PageManagers.

WorkerFinished ( object obj, RunWorkerCompletedEventArgs args ) : void

Called by PageManagers when their task is complete. If there is still work to be done, replaces the finished pageManager with a new one (creates a new thread) Exits if all work is complete.

Private Methods

Method Description
HaltAllOngoingWork ( ) : void

Stops and disposes all PageManager threads and marks the main search as finished working

IsWorkFinished ( ) : bool

True if the search was cancelled, we've reached 100% of the desired number of results, or all of the threads are finished

OutputPageManagerStatus ( ) : void

Write PageManager WorkStatus to console for debugging

Work ( object sender, DoWorkEventArgs e ) : void

Sets up PageManager threads and begin search

Method Details

GetPercentComplete() public method

Returns integer percentage of overall progress, based on the number of retrieved and validated results.
public GetPercentComplete ( ) : int
return int

ResultReturned() public method

Called by the PageManagers whenever they have a result. Returns the result back to the UI. Also checks and stops work if finished.
public ResultReturned ( object obj, ProgressChangedEventArgs args ) : void
obj object sender object
args System.ComponentModel.ProgressChangedEventArgs Result
return void

SearchManager() public method

Create and start work on a new search. Spawns PageManagers.
public SearchManager ( SearchCriteria searchCriteria, int threadCount ) : System
searchCriteria SearchCriteria User-supplied search criteria
threadCount int Number of pages to search asynchronously
return System

WorkerFinished() public method

Called by PageManagers when their task is complete. If there is still work to be done, replaces the finished pageManager with a new one (creates a new thread) Exits if all work is complete.
public WorkerFinished ( object obj, RunWorkerCompletedEventArgs args ) : void
obj object sender object
args System.ComponentModel.RunWorkerCompletedEventArgs Result
return void