private static void InitEpisodeListThread(int progid)
{
try
{
List<string> episodeExtIDs = Model.Programme.GetAvailableEpisodes(progid, true);
if (episodeExtIDs != null)
{
foreach (string episodeExtId in episodeExtIDs)
{
int? epid = null;
epid = Model.Episode.FetchInfo(progid, episodeExtId);
if (epid == null)
{
continue;
}
Model.Episode.UpdateInfoIfRequired(epid.Value);
lock (episodeListThreadLock)
{
if (!ReferenceEquals(Thread.CurrentThread, episodeListThread))
{
return;
}
if (EpisodeAdded != null)
{
EpisodeAdded(epid.Value);
}
}
}
}
}
catch (ProviderException provExp)
{
if (MessageBox.Show("There was an unknown error encountered fetching the list of available episodes." + Environment.NewLine + Environment.NewLine + "Would you like to send an error report to NerdoftheHerd.com to help improve the " + provExp.ProviderName + " provider?", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
{
ErrorReporting report = provExp.BuildReport();
report.SendReport();
}
return;
}
}