public PageManager(int pageNumber,
SearchCriteria criteria,
Func<int, string, string> pageLoadMethod, // see explanation above
ProgressChangedEventHandler updateProgressMethod,
RunWorkerCompletedEventHandler workerCompleteMethod)
{
if (pageNumber < 1)
{
string msg = "Supplied page number ({0}) was < 0!";
msg = string.Format(msg,pageNumber);
throw new ArgumentOutOfRangeException(msg);
}
if (pageLoadMethod == null)
{
string msg = "Provided a null method to obtain page HTML!";
throw new InvalidOperationException(msg);
}
ProgressChanged += updateProgressMethod; // Callback
RunWorkerCompleted += workerCompleteMethod; // Callback
DoWork += Work;
_pageLoadMethod = pageLoadMethod;
_searchCriteria = criteria;
_pageNumber = pageNumber;
WorkerReportsProgress = true;
WorkerSupportsCancellation = true;
}